diff options
Diffstat (limited to '.config')
89 files changed, 1621 insertions, 1079 deletions
diff --git a/.config/.guile b/.config/.guile new file mode 100644 index 0000000..9a74b00 --- /dev/null +++ b/.config/.guile @@ -0,0 +1,4 @@ +(use-modules + (ice-9 readline) + (oop goops)) +(activate-readline) diff --git a/.config/.mozilla/firefox/profile.default/chrome/userChrome.css b/.config/.mozilla/firefox/profile.default/chrome/userChrome.css index c10d5a1..020512e 100644 --- a/.config/.mozilla/firefox/profile.default/chrome/userChrome.css +++ b/.config/.mozilla/firefox/profile.default/chrome/userChrome.css @@ -23,31 +23,32 @@ /* * Reduce expanding urlbar. - * Source: https://raw.githubusercontent.com/WesleyBranton/userChrome.css-Customizations/master/css/remove_megabar.css + * Source: https://github.com/WesleyBranton/Remove-Firefox-Megabar#readme */ + +/* Disable expanding urlbar (compact). */ @-moz-document url(chrome://browser/content/browser.xhtml) { #urlbar[breakout][breakout-extend] > #urlbar-input-container, #urlbar-input-container { - height: var(--urlbar-height) !important; - padding-block: 0px !important; - padding-inline: 0px !important; - transition: none !important; - border-radius: var(--toolbarbutton-border-radius) !important; + height: 26px !important; + padding-block: 0px !important; + padding-inline: 0px !important; + transition: none !important; + border-radius: var(--toolbarbutton-border-radius) !important; } #urlbar[breakout][breakout-extend] { - top: calc((var(--urlbar-toolbar-height) - var(--urlbar-height)) / 2) !important; - left: 0 !important; - width: 100% !important; + top: calc((var(--urlbar-toolbar-height) - var(--urlbar-height)) / 2) !important; + left: 0 !important; + width: 100% !important; } #urlbar[breakout][breakout-extend] > #urlbar-input-container { - border: 1px solid var(--toolbar-field-focus-border-color) !important; + border: 1px solid var(--toolbar-field-focus-border-color) !important; } #urlbar[breakout][breakout-extend][open] > #urlbar-input-container { - border-bottom: 1px solid transparent !important; - border-radius: var(--toolbarbutton-border-radius) var(--toolbarbutton-border-radius) 0 0 !important; + border-bottom: 1px solid transparent !important; + border-radius: var(--toolbarbutton-border-radius) var(--toolbarbutton-border-radius) 0 0 !important; } } - diff --git a/.config/.mozilla/firefox/profile.default/user.js b/.config/.mozilla/firefox/profile.default/user.js index 9cff6ab..704cf17 100644 --- a/.config/.mozilla/firefox/profile.default/user.js +++ b/.config/.mozilla/firefox/profile.default/user.js @@ -9,21 +9,30 @@ user_pref("app.update.auto", false); user_pref("beacon.enabled", false); user_pref("breakpad.reportURL", ""); -user_pref("browser.aboutConfig.showWarning", false); -user_pref("browser.cache.disk.enable", false); +user_pref("browser.aboutConfig.showWarning", false); // Disable about:config warning +user_pref("browser.discovery.enabled", false); // Disable extension recommendations +user_pref("browser.fixup.alternate.enabled", false); // Disable URL fixing +user_pref("browser.formfill.enable", false); // Disable form history +user_pref("browser.pocket.enabled", false); // Disable pocket +user_pref("browser.privatebrowsing.forceMediaMemoryCache", true); // Memory only private browsing media cache +user_pref("browser.startup.homepage", "about:blank"); // Set home page to about:blank + +user_pref("browser.cache.disk.enable", false); // Disable disk cache user_pref("browser.cache.disk_cache_ssl", false); user_pref("browser.cache.memory.capacity", 25600); user_pref("browser.cache.offline.enable", false); +user_pref("browser.download.alwaysOpenPanel", false); // Disable opening panel on download +user_pref("browser.download.always_ask_before_handling_new_types", true); // Always ask for new mime types +user_pref("browser.download.animateNotifications", false); // Disable download animations +user_pref("browser.download.manager.addToRecentDocs", false); // Disable adding download to recent list +user_pref("browser.download.useDownloadDir", false); // Always ask where to save download + user_pref("browser.crashReports.unsubmittedCheck.autoSubmit", false); user_pref("browser.crashReports.unsubmittedCheck.autoSubmit2", false); user_pref("browser.crashReports.unsubmittedCheck.enabled", false); -user_pref("browser.discovery.enabled", false); -user_pref("browser.download.animateNotifications", false); -user_pref("browser.fixup.alternate.enabled", false); - user_pref("browser.newtab.preload", false); user_pref("browser.newtabpage.enabled", false); user_pref("browser.newtabpage.enhanced", false); @@ -41,9 +50,6 @@ user_pref("browser.newtabpage.activity-stream.section.highlights.includeVisited" user_pref("browser.newtabpage.activity-stream.section.highlights.includeBookmarks", false); user_pref("browser.newtabpage.activity-stream.section.highlights.includeDownloads", false); -user_pref("browser.pocket.enabled", false); -user_pref("browser.startup.homepage", "about:blank"); - user_pref("browser.safebrowsing.appRepURL", ""); user_pref("browser.safebrowsing.blockedURIs.enabled", false); user_pref("browser.safebrowsing.downloads.enabled", false); @@ -65,13 +71,15 @@ user_pref("browser.selfsupport.url", ""); user_pref("browser.disableResetPrompt", true); user_pref("browser.shell.checkDefaultBrowser", false); user_pref("browser.send_pings.require_same_host", true); -user_pref("browser.startup.homepage_override.mstone", "ignore"); +user_pref("browser.startup.homepage_override.mstone", "ignore"); // Disable welcome screen +user_pref("browser.messaging-system.whatsNewPanel.enabled", false); // Disable what's new panel user_pref("browser.sessionstore.privacy_level", 2); user_pref("browser.sessionhistory.max_entries", 20); user_pref("browser.tabs.crashReporting.sendReport", false); user_pref("browser.urlbar.maxRichResults", 0); user_pref("browser.urlbar.searchSuggestionsChoice", false); +user_pref("browser.urlbar.showSearchTerms.enabled", false); // Always show URL user_pref("browser.urlbar.speculativeConnect.enabled", false); user_pref("browser.urlbar.suggest.bookmark", false); user_pref("browser.urlbar.suggest.engines", false); @@ -79,6 +87,7 @@ user_pref("browser.urlbar.suggest.history", false); user_pref("browser.urlbar.suggest.openpage", false); user_pref("browser.urlbar.suggest.searches", false); user_pref("browser.urlbar.suggest.topsites", false); +user_pref("browser.urlbar.showSearchSuggestionsFirst", false); user_pref("browser.urlbar.timesBeforeHidingSuggestionsHint", 0); user_pref("browser.urlbar.trimURLs", false); @@ -109,7 +118,8 @@ user_pref("dom.popup_allowed_events", ""); user_pref("dom.webnotifications.enabled", false); user_pref("extensions.getAddons.cache.enabled", false); -user_pref("extensions.getAddons.showPane", false); +user_pref("extensions.getAddons.showPane", false); // Disable recommendations pane +user_pref("extensions.htmlaboutaddons.recommendations.enabled", false); // Disable addons recommendations user_pref("extensions.pocket.enabled", false); user_pref("extensions.screenshots.upload-disabled", true); user_pref("extensions.shield-recipe-client.api_url", ""); @@ -124,7 +134,7 @@ user_pref("experiments.activeExperiment", false); user_pref("geo.enabled", false); user_pref("gfx.webrender.all", true); user_pref("javascript.options.mem.max", 51200); -user_pref("layout.css.visited_links_enabled", false); +user_pref("layout.css.visited_links_enabled", false); // Disable visited links user_pref("media.autoplay.default", 1); user_pref("media.ffvpx.enabled", false); @@ -133,7 +143,9 @@ user_pref("media.ffmpeg.vaapi.enabled", true); user_pref("media.ffmpeg.dmabuf-textures.enabled", true); user_pref("network.IDN_show_punycode", true); +user_pref("network.allow-experiments", false); user_pref("network.captive-portal-service.enabled", false); +user_pref("network.connectivity-service.enabled", false); // Disable network connectivity check user_pref("network.cookie.cookieBehavior", 1); user_pref("network.cookie.lifetimePolicy", 2); user_pref("network.cookie.thirdparty.sessionOnly", true); @@ -141,15 +153,14 @@ user_pref("network.dns.disableIPv6", true); user_pref("network.dns.disablePrefetch", true); user_pref("network.dns.disablePrefetchFromHTTPS", true); user_pref("network.dnsCacheEntries", 0); -user_pref("network.trr.mode", 5); -user_pref("network.prefetch-next", false); -user_pref("network.allow-experiments", false); -user_pref("network.predictor.enabled", false); -user_pref("network.predictor.cleaned-up", true); -user_pref("network.proxy.socks_remote_dns", true); user_pref("network.http.referer.spoofSource", true); -user_pref("network.predictor.enable-prefetch", false); user_pref("network.http.speculative-parallel-limit", 0); +user_pref("network.predictor.cleaned-up", true); +user_pref("network.predictor.enable-prefetch", false); +user_pref("network.predictor.enabled", false); +user_pref("network.prefetch-next", false); +user_pref("network.proxy.socks_remote_dns", true); // Use proxy for DNS +user_pref("network.trr.mode", 5); user_pref("security.OCSP.enabled", 0); user_pref("security.ssl.disable_session_identifiers", true); @@ -172,18 +183,25 @@ user_pref("toolkit.telemetry.updatePing.enabled", false); user_pref("signon.autofillForms", false); user_pref("signon.generation.enabled", false); +user_pref("signon.firefoxRelay.feature", "disabled"); // Disable relay email masks user_pref("extensions.formautofill.addresses.enabled", false); user_pref("extensions.formautofill.creditCards.enabled", false); -user_pref("privacy.donottrackheader.value", 1); user_pref("privacy.donottrackheader.enabled", true); -user_pref("privacy.trackingprotection.enabled", true); -user_pref("privacy.trackingprotection.pbmode.enabled", true); +user_pref("privacy.donottrackheader.value", 1); user_pref("privacy.trackingprotection.cryptomining.enabled", true); +user_pref("privacy.trackingprotection.enabled", true); user_pref("privacy.trackingprotection.fingerprinting.enabled", true); +user_pref("privacy.trackingprotection.pbmode.enabled", true); user_pref("privacy.usercontext.about_newtab_segregation.enabled", true); +user_pref("privacy.clearOnShutdown.cache", true); // Clear cache on shutdown +user_pref("privacy.clearOnShutdown.cookies", true); // Clear cookies on shutdown +user_pref("privacy.clearOnShutdown.formdata", true); // Clear form data on shutdown +user_pref("privacy.clearOnShutdown.offlineApps", true); // Clear offline website data on shutdown +user_pref("privacy.clearOnShutdown.sessions", true); // Clear active logins on shutdown + user_pref("webgl.disable-extensions", true); user_pref("webgl.disabled", true); user_pref("webgl.renderer-string-override", " "); diff --git a/.config/VSCodium/User/settings.json b/.config/VSCodium/User/settings.json new file mode 100644 index 0000000..7040482 --- /dev/null +++ b/.config/VSCodium/User/settings.json @@ -0,0 +1,8 @@ +{ + "workbench.startupEditor": "none", + "update.mode": "none", + "window.menuBarVisibility": "toggle", + "update.showReleaseNotes": false, + "extensions.autoCheckUpdates": false, + "extensions.autoUpdate": false +}
\ No newline at end of file diff --git a/.config/X11/Xresources b/.config/X11/Xresources index b0d9a07..d551748 100644 --- a/.config/X11/Xresources +++ b/.config/X11/Xresources @@ -2,29 +2,48 @@ ! URxvt Settings ! ----------------- -URxvt.perl-ext-common: default,matcher,font-size,vtwheel,url-select,keyboard-select -URxvt.url-launcher: /usr/bin/env xdg-open -URxvt.url-select.launcher: /usr/bin/env xdg-open -URxvt.keysym.M-Escape: perl:keyboard-select:activate -URxvt.matcher.button: 1 -URxvt.internalBorder: 10 -URxvt.geometry: 80x18 -URxvt.cursorUnderline: 0 URxvt.cursorBlink: 1 +URxvt.cursorUnderline: 0 +URxvt.geometry: 80x18 +URxvt.internalBorder: 10 URxvt.keysym.C-0: perl:font-size:reset -URxvt.keysym.C-Up: perl:font-size:increase URxvt.keysym.C-Down: perl:font-size:decrease +URxvt.keysym.C-Up: perl:font-size:increase +URxvt.keysym.M-Escape: perl:keyboard-select:activate +URxvt.matcher.button: 1 +URxvt.perl-ext-common: default,matcher,font-size,vtwheel,url-select,keyboard-select,-confirm-paste URxvt.scrollBar: false +URxvt.scrollTtyKeypress: true URxvt.scrollTtyOutput: false URxvt.scrollWithBuffer: true -URxvt.scrollTtyKeypress: true -URxvt.transparent: false URxvt.shading: 20 +URxvt.transparent: false +URxvt.url-launcher: /usr/bin/env xdg-open +URxvt.url-select.launcher: /usr/bin/env xdg-open -URxvt.font: xft:monospace:size=10,xft:DejaVuSansMono Nerd Font Mono:size=10 URxvt.boldFont: xft:monospace:size=10,xft:DejaVuSansMono Nerd Font Mono:size=10 -URxvt.italicFont: xft:monospace:size=10,xft:DejaVuSansMono Nerd Font Mono:size=10 URxvt.boldItalicFont: xft:monospace:size=10,xft:DejaVuSansMono Nerd Font Mono:size=10 +URxvt.font: xft:monospace:size=10,xft:DejaVuSansMono Nerd Font Mono:size=10 +URxvt.italicFont: xft:monospace:size=10,xft:DejaVuSansMono Nerd Font Mono:size=10 + +! ----------------- +! UXTerm Settings +! ----------------- + +UXTerm.termName: xterm-256color +UXTerm.ttyModes: erase ^? +UXTerm.vt100.backarrowKey: false +UXTerm.vt100.cursorBlink: true +UXTerm.vt100.faceName: xft:monospace:size=10,xft:DejaVuSansMono Nerd Font Mono:size=10 +UXTerm.vt100.fastScroll: true +UXTerm.vt100.geometry: 80x18 +UXTerm.vt100.internalBorder: 10 +UXTerm.vt100.jumpScroll: true +UXTerm.vt100.locale: false +UXTerm.vt100.metaSendsEscape: true +UXTerm.vt100.multiScroll: true +UXTerm.vt100.saveLines: 4096 +UXTerm.vt100.utf8: true ! ----------------- ! Terminal Colors diff --git a/.config/X11/xbindkeysrc b/.config/X11/xbindkeysrc index dac6e85..a8605fe 100644 --- a/.config/X11/xbindkeysrc +++ b/.config/X11/xbindkeysrc @@ -22,10 +22,6 @@ "wmctrl -c :ACTIVE:" Mod4 + Shift + c -# toggle fullscreen active window -"wmctrl -r :ACTIVE: -b toggle,fullscreen" - Mod4 + f - # toggle ontop active window "wmctrl -r :ACTIVE: -b toggle,above" Mod4 + t diff --git a/.config/X11/xinitrc b/.config/X11/xinitrc index 18e09b9..116c9da 100755 --- a/.config/X11/xinitrc +++ b/.config/X11/xinitrc @@ -5,21 +5,23 @@ Xresources=$HOME/.config/X11/Xresources Xauthority=$HOME/.config/X11/Xauthority # merge in defaults and keymaps -[ -f "$Xmodmap" ] && xmodmap "$Xmodmap"; -[ -f "$Xresources" ] && xrdb -merge "$Xresources"; +[ -f "$Xmodmap" ] && xmodmap "$Xmodmap" +[ -f "$Xresources" ] && xrdb -merge "$Xresources" # screen timeouts xset s 0 0 & xset dpms 3600 3600 3600 & # set cursor -xsetroot -cursor_name left_ptr; +xsetroot -cursor_name left_ptr # set keypress repeat -xset r rate 200 60; +xset r rate 200 60 # import systemctl environment -systemctl --user import-environment; +systemctl --user import-environment -# run desktop -dbus-launch xfce4-session || exec awesome --no-argb; +# launch environment +dbus-launch xfce4-session \ + || dbus-broker-launch xfce4-session \ + || exec awesome --no-argb diff --git a/.config/alacritty/alacritty.yml b/.config/alacritty/alacritty.yml new file mode 100644 index 0000000..3f7e7c6 --- /dev/null +++ b/.config/alacritty/alacritty.yml @@ -0,0 +1,10 @@ +--- +window: + padding: + x: 15 + y: 15 + dimensions: + columns: 79 + lines: 18 +font: + size: 10 diff --git a/.config/aspell/aspell.conf b/.config/aspell/aspell.conf new file mode 100644 index 0000000..47eb382 --- /dev/null +++ b/.config/aspell/aspell.conf @@ -0,0 +1 @@ +data-dir /home/thedro/.nix-profile/lib/aspell diff --git a/.config/awesome/rc.lua b/.config/awesome/rc.lua index 546f5d7..85221b5 100644 --- a/.config/awesome/rc.lua +++ b/.config/awesome/rc.lua @@ -92,9 +92,9 @@ menubar.utils.terminal = terminal widget_memory = awful.widget.watch('sh -c "printf \' \' && free --giga -h | awk \'FNR == 2 { print $7 }\'"', 3) -- Create memory widget. widget_swap = awful.widget.watch('sh -c "printf \' \' && free --giga -h | awk \'FNR == 3 { print $4 }\'"', 4) -- Create swap widget. widget_battery = awful.widget.watch('sh -c "printf \' \' && acpi --battery 2>&1 | awk -F, \'{ print $2 }\'"', 5) -- Create battery widget. -widget_date = awful.widget.watch('sh -c "printf \' \' && date \'+%-l:%M %p %A %B %-d\'"', 1) -- Create date widget. +widget_date = awful.widget.watch('sh -c "printf \' \' && date \'+%H:%M %a %b %d\'"', 1) -- Create date widget. widget_loadaverage = awful.widget.watch('sh -c "printf \' \' && cat /proc/loadavg | awk -v OFS=\' \' \'{ print $1, $2, $3 }\'"', 5) -- Create load average widget. -widget_temperature = awful.widget.watch('sh -c "printf \' \' && sensors | awk \'/temp1:/ { print $2 }\' | head -n1"', 5) -- Create temperature widget. +widget_temperature = awful.widget.watch('sh -c "printf \' \' && sensors | awk \'/Core 0:/ { print $3 }\' | head -n1"', 5) -- Create temperature widget. widget_traffic_down = awful.widget.watch( 'sh -c "printf \' \'' .. ' && vnstat -tr 2 -i $(ip addr | awk \'/state UP/ { print $2; exit }\' | sed \'s/.$//\') | awk \'/rx/ { print $2, $3 }\'"', 5) -- Create download traffic widget. diff --git a/.config/chromexup/config.ini b/.config/chromexup/config.ini index 95308a0..16032cb 100644 --- a/.config/chromexup/config.ini +++ b/.config/chromexup/config.ini @@ -5,7 +5,6 @@ parallel_downloads = 4 [extensions] BlankNewTabPage = jaadjnlkjnhohljficgoddcjmndjfdmi -CSSFeatureToggles = aeinmfddnniiloadoappmdnffcbffnjg JavaScriptToggle = cdcgbgnfhhdmdkallfmlachogpghifgf -OldReddit = dneaehbmnbhcippjikoajpoabadpodje +NoHistory = ljamgkbcojbnmcaonjokopmcblmmpfch uBlockOrigin = cjpalhdlnbpafiamejdnhcphjbkeiagm diff --git a/.config/emacs/init.el b/.config/emacs/init.el index 8bc4592..eb468ec 100644 --- a/.config/emacs/init.el +++ b/.config/emacs/init.el @@ -8,15 +8,18 @@ (setq inhibit-startup-screen t) ; Disable startup screen. (setq-default indent-tabs-mode nil) ; Use spaces for indentation. (setq inferior-lisp-program "sbcl") ; Enable slime. +(setq-default mode-line-format nil) ; Remove status line. - -(menu-bar-mode -1) ; Disable menu bar. -(tool-bar-mode -1) ; Disable tool bar. -(tooltip-mode -1) ; Disable tool tips. +(menu-bar-mode -1) ; Disable menu bar. +(tool-bar-mode -1) ; Disable tool bar. +(tooltip-mode -1) ; Disable tool tips. (scroll-bar-mode -1) ; Disable scroll bar. (set-fringe-mode 10) ; Create space. (ido-mode t) ; Enable file search interactive mode C-x C-f. +(setq backup-directory-alist + '(("." . "~/.config/emacs/backups"))) + (require 'package) ; Set up package.el to work with melpa. (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/")) @@ -24,8 +27,6 @@ (unless package-archive-contents (package-refresh-contents)) (package-install-selected-packages) -(evil-mode 1) ; Enable evil. - (global-set-key (kbd "M-x") 'smex) ; Enable smex interactive M-x. (global-set-key (kbd "M-X") 'smex-major-mode-commands) (global-set-key (kbd "C-c C-c M-x") 'execute-extended-command) ; Native M-x binding. diff --git a/.config/git/config b/.config/git/config index 5b8bd9b..cdc1251 100644 --- a/.config/git/config +++ b/.config/git/config @@ -1,12 +1,25 @@ [user] name = tdro email = tdro@noreply.example.com + [push] default = simple + [color] ui = auto + [core] editor = vim excludesfile = ~/.config/git/ignore + [init] defaultBranch = master + +[alias] + ignored = !git ls-files -v | grep '^h' + +[diff] + algorithm = patience + +[commit] + verbose = true diff --git a/.config/libvirt/libvirt.conf b/.config/libvirt/libvirt.conf new file mode 100644 index 0000000..deb583b --- /dev/null +++ b/.config/libvirt/libvirt.conf @@ -0,0 +1 @@ +uri_default = "qemu:///system" diff --git a/.config/lxc/builds/archlinux.dockerfile b/.config/lxc/builds/archlinux.dockerfile index d41ba42..4441ee6 100644 --- a/.config/lxc/builds/archlinux.dockerfile +++ b/.config/lxc/builds/archlinux.dockerfile @@ -1,4 +1,4 @@ -FROM docker.io/library/archlinux:base-devel-20220306.0.49442@sha256:bd9ac4ed9caf9a7e61ae1981d009d5b67fc419027f9cb87f7b2f45af737f44d6 +FROM docker.io/library/archlinux:base-devel-20230115.0.118859@sha256:d363f036cbbe40976a3b5883712fa56637a7245c24eca278d9afe71d64a93aea RUN pacman --noconfirm -Syu wget @@ -54,7 +54,7 @@ RUN systemctl mask \ sys-kernel-debug.mount \ systemd-journald-audit.socket \ systemd-firstboot.service \ - tmp.mount \ + tmp.mount RUN printf 'permit :wheel\npermit nopass keepenv root\n' > /etc/doas.conf && chmod 400 /etc/doas.conf diff --git a/.config/lxc/builds/ubuntu-impish21.10.dockerfile b/.config/lxc/builds/ubuntu-lunar23.04.dockerfile index 1bd8b27..c86f47b 100644 --- a/.config/lxc/builds/ubuntu-impish21.10.dockerfile +++ b/.config/lxc/builds/ubuntu-lunar23.04.dockerfile @@ -1,14 +1,16 @@ -FROM docker.io/library/ubuntu:impish@sha256:4e4222975b1673cbbff799934fa00dc0b3191d0c9a7711f5b1d0b81fdcbfe6aa +FROM docker.io/library/ubuntu:lunar@sha256:a40051efc6b591d38faffb11fdcef157103b9a4143edbc959c47e4b8c7d2e9eb RUN apt update RUN apt install --no-install-recommends --assume-yes \ - init uuid-runtime neofetch vim-tiny iproute2 dhcpcd5 xauth htop + init uuid-runtime neofetch vim-tiny iproute2 xauth htop RUN systemctl mask sys-kernel-debug.mount +RUN systemctl enable systemd-networkd RUN ln --symbolic --force bash /bin/sh +RUN printf '[Match]\nName=eth0\n\n[Network]\nDHCP=yes' > /etc/systemd/network/20-wired.network RUN printf 'export TERM=linux\n' >> /etc/profile RUN printf 'neofetch\n' >> /etc/profile diff --git a/.config/lxc/builds/void.dockerfile b/.config/lxc/builds/void.dockerfile index 07a74f0..155df96 100644 --- a/.config/lxc/builds/void.dockerfile +++ b/.config/lxc/builds/void.dockerfile @@ -1,7 +1,7 @@ FROM docker.io/voidlinux/voidlinux:latest@sha256:26ba972f0c06beadcec4796ec3037e0bec32af4d255edb68a528bd98304c74f4 +RUN xbps-install -Syu xbps RUN xbps-install -Syu - RUN xbps-install -y openssh dhcpcd iputils iproute2 socklog-void neofetch htop RUN mkdir --parents /run/runit/runsvdir diff --git a/.config/moc/config b/.config/moc/config index b7b469e..c3f7971 100644 --- a/.config/moc/config +++ b/.config/moc/config @@ -1 +1,2 @@ Theme = /home/thedro/.config/moc/themes/terminal +Keymap = keymap diff --git a/.config/moc/keymap b/.config/moc/keymap new file mode 100644 index 0000000..79b54ff --- /dev/null +++ b/.config/moc/keymap @@ -0,0 +1,9 @@ +menu_down = j DOWN +menu_up = k UP +menu_page_down = ^f PAGE_DOWN +menu_page_up = ^b PAGE_UP +menu_first_item = J HOME +menu_last_item = K END +toggle_menu = ^W TAB +toggle_layout = +help = ? diff --git a/.config/nixpkgs/config.nix b/.config/nixpkgs/config.nix index 078c351..a95debd 100644 --- a/.config/nixpkgs/config.nix +++ b/.config/nixpkgs/config.nix @@ -2,13 +2,19 @@ let pkgs = import <nixpkgs> { }; + system = builtins.currentSystem; + + previous = import (builtins.fetchTarball { + url = "https://releases.nixos.org/nixos/22.11/nixos-22.11.466.596a8e828c5/nixexprs.tar.xz"; + sha256 = "1367bad5zz0mfm4czb6p0s0ni38f0x1ffh02z76rx4nranipqbgg"; }) { inherit system; }; + stable = import (builtins.fetchTarball { - url = "https://releases.nixos.org/nixos/21.11/nixos-21.11.336020.2128d0aa28e/nixexprs.tar.xz"; - sha256 = "0w8plbxms0di6gnh0k2yhj0pgxzxas7g5x0m01zjzixf16i2bapj"; }) {}; + url = "https://releases.nixos.org/nixos/23.11/nixos-23.11.6510.a5e4bbcb4780/nixexprs.tar.xz"; + sha256 = "0f73pbh4j89wgk7rn9xp0q8ybw15zkhw0prjz5r37aaryjs8hnbd"; }) { inherit system; }; unstable = import (builtins.fetchTarball { - url = "https://releases.nixos.org/nixos/unstable/nixos-22.05pre353770.23d785aa6f8/nixexprs.tar.xz"; - sha256 = "1n50i34h3yj2a44x3gl2xk27z8r12lzgj2m8n5j1c4k6kh4z1b22"; }) {}; + url = "https://releases.nixos.org/nixos/unstable/nixos-24.05pre615148.6143fc5eeb9c/nixexprs.tar.xz"; + sha256 = "0bymwq04dxl3ljjjzw21aspdnwwfm56pqi218lg0vdwargy8yxm8"; }) { inherit system; }; in @@ -25,9 +31,9 @@ in Woodpecker = pkgs.buildEnv { name = "woodpecker"; paths = [ - Terminal Graphical Xorg Awesome Fonts Audio LaTeX Dictionary - Android JavaScript Python PHP Lua Elixir HTML Shell Haskell - Perl Nix C Golang Rust CSS SQL YAML Ruby Nim Themes Emulators + Terminal Graphical Xorg Wayland Awesome Fonts Audio LaTeX Dictionary Android + JavaScript Python PHP Lua Elixir HTML Shell Haskell Perl Nix C Golang Rust CSS + SQL YAML HTTP Ruby Nim Themes Emulators Clojure Lisp ]; }; @@ -64,27 +70,33 @@ in Terminal = pkgs.buildEnv { name = "terminal"; paths = [ - (callPackage ./packages/chromexup/default.nix {}) - (callPackage ./packages/hugo/default.nix {}) - (callPackage ./packages/rxvt-unicode/default.nix {}) - (callPackage ./packages/systemd2nix/default.nix {}) - (callPackage ./packages/validatornu/default.nix {}) - (callPackage ./packages/youtube-dl/default.nix {}) - (unstable.pass.withExtensions (ext: with ext; [ pass-import pass-audit pass-otp ])) - unstable.amfora - unstable.emacs - unstable.fzf - unstable.quickemu + (callPackage ./packages/chromexup/package.nix { }) + (callPackage ./packages/emacs-batch-indent/package.nix { }) + (callPackage ./packages/pdf2htmlex/package.nix { }) + (callPackage ./packages/systemd2nix/package.nix { }) + (pass.withExtensions (ext: with ext; [ pass-import pass-audit pass-otp ])) + unstable.hugo + unstable.piper-tts + unstable.validator-nu + unstable.vimHugeX + unstable.yt-dlp + unstable.ios-webkit-debug-proxy + unstable.libimobiledevice aerc + alacritty alsaUtils + amfora ansi2html ansible + atftp atool bat + bind bleachbit - calcurse cava + cloc csvkit + curlftpfs davmail desktop-file-utils diceware @@ -92,23 +104,27 @@ in docker-compose dtrx electrum + emacs encfs entr - exercism expect + fdupes ffmpeg flashrom fortune + fzf gettext gifsicle git groff + hexedit hexyl highlight ideviceinstaller imagemagick img2pdf jpegoptim + jq keychain kjv libqalculate @@ -119,19 +135,26 @@ in monolith neofetch netcat-openbsd + nethogs newsboat nnn + nodePackages.mermaid-cli ocrmypdf pandoc - picotts + pdsh pipes + plantuml pngnq pngquant poppler_utils + pssh + quickemu ranger rclone ripgrep - sbcl + rxvt-unicode + s-tui + sfeed silver-searcher sshfs subversion @@ -139,19 +162,19 @@ in tcl tesseract tmux + toipe trash-cli units vale - vault vcal ventoy-bin - vimHugeX vnstat w3m wavemon weechat woof xdg-user-dirs + xterm zbar ]; pathsToLink = [ "/etc" "/share" "/bin" ]; @@ -160,24 +183,21 @@ in Graphical = pkgs.buildEnv { name = "graphical"; paths = [ - (callPackage ./packages/beaker-browser/default.nix {}) - (callPackage ./packages/boomer/default.nix {}) - (callPackage ./packages/dmenu/default.nix {}) - (callPackage ./packages/gnaural/default.nix {}) - (callPackage ./packages/ntrviewer/default.nix {}) - (callPackage ./packages/planner/default.nix {}) - (callPackage ./packages/scribus/default.nix {}) - (callPackage ./packages/sowon/default.nix {}) - (callPackage ./packages/tilp2/default.nix {}) + (callPackage ./packages/boomer/package.nix { }) + (callPackage ./packages/dmenu/package.nix { }) + (callPackage ./packages/rofi/package.nix { }) + (callPackage ./packages/sowon/package.nix { }) (mplayer.override { v4lSupport = true; }) - unstable.claws-mail - unstable.fsearch - unstable.nyxt + previous.code-server + previous.qownnotes + previous.recoll + unstable.firefox + unstable.google-chrome unstable.ungoogled-chromium aegisub anki blender - code-server + claws-mail corrscope dconf diffpdf @@ -185,15 +205,18 @@ in evince exiftool feh - firefox flameshot freerdp + fsearch gImageReader gcolor2 gimp - google-chrome + gnaural gparted gromit-mpx + gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good + gst_all_1.gstreamer i3lock-fancy kcharselect keepassxc @@ -203,30 +226,25 @@ in liferea mate.engrampa meld - mupdf + mupdf_1_17 mypaint - palemoon pavucontrol peek - qownnotes qrencode - recoll redshift - rofi scrcpy screenkey + sent sigil skippy-xd spaceFM + stalonetray sublime3 sxiv syncthing - tabula tigervnc transmission-gtk treesheets - treesheets - vimb virt-manager vlc vscodium @@ -241,7 +259,8 @@ in Emulators = pkgs.buildEnv { name = "emulators"; paths = [ - (callPackage ./packages/tiemu/default.nix {}) + (callPackage ./packages/ntrviewer/package.nix { }) + (callPackage ./packages/tiemu/package.nix { }) desmume mgba ]; @@ -250,13 +269,11 @@ in Xorg = pkgs.buildEnv { name = "xorg"; paths = [ - (callPackage ./packages/x11vnc/default.nix {}) - (callPackage ./packages/xprintidle/default.nix {}) autocutsel glxinfo unclutter-xfixes - weston wmctrl + x11vnc xbindkeys xdotool xorg.xauth @@ -276,14 +293,26 @@ in xorg.xrdb xorg.xset xorg.xsetroot + xprintidle xsel xzoom ]; }; + Wayland = pkgs.buildEnv { + name = "wayland"; + paths = [ + (callPackage ./packages/wf-shell/package.nix { }) + wayfire + weston + wev + wofi + ]; + }; + Awesome = pkgs.buildEnv { name = "awesome"; - paths = [ awesome ]; + paths = [ (callPackage ./packages/awesome/package.nix { }) ]; }; Xfce = pkgs.buildEnv { @@ -314,7 +343,7 @@ in Fonts = pkgs.buildEnv { name = "fonts"; paths = [ - (callPackage ./packages/nerdfonts-dejavu-sans-mono/default.nix {}) + (callPackage ./packages/nerdfonts-dejavu-sans-mono/package.nix { }) cm_unicode cooper-hewitt corefonts @@ -325,10 +354,12 @@ in fira-mono font-awesome_4 ibm-plex + inter noto-fonts noto-fonts-cjk noto-fonts-emoji source-code-pro + source-sans-pro source-serif-pro yanone-kaffeesatz ]; @@ -337,11 +368,16 @@ in Themes = pkgs.buildEnv { name = "themes"; paths = [ + glib + gnome.dconf-editor + gnome.gnome-themes-extra gtk-engine-murrine + gtk3.dev librsvg lxappearance papirus-icon-theme - qt4 + qt5ct + unstable.nwg-look vanilla-dmz ]; }; @@ -349,10 +385,11 @@ in Dictionary = pkgs.buildEnv { name = "dictionary"; paths = [ - aspell - aspellDicts.en - aspellDicts.en-computers - aspellDicts.en-science + (aspellWithDicts (dictionary: [ + dictionary.en + dictionary.en-computers + dictionary.en-science + ])) hunspell hunspellDicts.en_US-large hyphen @@ -362,39 +399,45 @@ in Audio = pkgs.buildEnv { name = "audio"; - paths = [ pulseeffects-pw pulsemixer audacity ardour qjackctl ]; + paths = [ + (callPackage ./packages/qprompt/package.nix { }) + ardour + pulsemixer + qjackctl + tenacity + ]; }; Design = pkgs.buildEnv { name = "design"; - paths = [ freecadStable kicad ]; + paths = [ kicad freecadStable openscad librecad ]; }; Android = pkgs.buildEnv { name = "android"; paths = [ - (callPackage ./packages/edl/default.nix {}) - (callPackage ./packages/mkbootfs/default.nix {}) - (callPackage ./packages/mkbootimg/default.nix {}) + (callPackage ./packages/mkbootfs/package.nix { }) + (callPackage ./packages/mkbootimg/package.nix { }) + edl abootimg ]; }; LaTeX = pkgs.buildEnv { name = "latex"; - paths = [ gummi texworks texlive.combined.scheme-full ]; + paths = [ gummi texlive.combined.scheme-full previous.texworks ]; }; JavaScript = pkgs.buildEnv { name = "javascript"; paths = [ - nodejs unstable.deno - nodePackages.bower2nix + unstable.swc + esbuild nodePackages.eslint nodePackages.jsonlint - nodePackages.node2nix nodePackages.prettier + nodejs ]; pathsToLink = [ "/bin" ]; }; @@ -402,25 +445,48 @@ in Python = pkgs.buildEnv { name = "python"; paths = [ - (python39.withPackages (ps: with ps; [ bandit black mypy pylint pyflakes flake8 pygments ])) + (python3.withPackages (ps: with ps; [ + bandit + black + flake8 + mypy + pyflakes + pygments + pylint + ])) + ruff ]; }; PHP = pkgs.buildEnv { name = "php"; paths = [ - php - phpPackages.psysh - phpPackages.psalm + (php.buildEnv { + extensions = ({ enabled, all }: enabled ++ (with all; [ xdebug ])); + extraConfig = '' + xdebug.mode=develop,debug + xdebug.start_with_request=yes + ''; + }) + (callPackage ./packages/phar-composer/package.nix { }) + graphviz + kcachegrind + phpPackages.composer phpPackages.phpcbf phpPackages.phpstan - phpPackages.composer + phpPackages.psalm + phpPackages.psysh ]; }; Lua = pkgs.buildEnv { name = "lua"; - paths = [ lua luaPackages.luacheck luaformatter ]; + paths = [ + (callPackage ./packages/redbean/package.nix { }) + lua + luaPackages.luacheck + luaformatter + ]; }; Elixir = pkgs.buildEnv { @@ -434,6 +500,7 @@ in html-tidy html-xml-utils libxml2 + libxslt xmlstarlet ]; }; @@ -445,22 +512,27 @@ in Haskell = pkgs.buildEnv { name = "haskell"; - paths = [ ghc ghcid haskellPackages.hlint haskellPackages.brittany ]; + paths = [ ghc ghcid haskellPackages.hlint previous.haskellPackages.brittany ]; + }; + + Clojure = pkgs.buildEnv { + name = "clojure"; + paths = [ clojure leiningen ]; }; Perl = pkgs.buildEnv { name = "perl"; - paths = [ rakudo (perl.withPackages (ps: with ps; [ PerlCritic PerlTidy TextLorem ])) ]; + paths = [ rakudo (perl.withPackages (ps: with ps; [ PerlCritic PerlTidy TextLorem LaTeXML ])) ]; }; Nix = pkgs.buildEnv { name = "nix"; - paths = [ nixos-generators nix-index nix-linter nixfmt nixpkgs-fmt nixpkgs-lint ]; + paths = [ nix-index previous.nix-linter nixfmt nixpkgs-fmt nixpkgs-lint ]; }; Ruby = pkgs.buildEnv { name = "ruby"; - paths = [ (callPackage ./packages/rufo/default.nix {}) rubocop ruby ]; + paths = [ rubocop ruby ]; }; C = pkgs.buildEnv { @@ -470,7 +542,7 @@ in Golang = pkgs.buildEnv { name = "golang"; - paths = [ go unstable.gore ]; + paths = [ go gore ]; }; Rust = pkgs.buildEnv { @@ -483,11 +555,30 @@ in paths = [ nim ]; }; + Lisp = pkgs.buildEnv { + name = "lisp"; + paths = [ + (pkgs.writeScriptBin "guile" '' + export GUILE_LOAD_PATH="${pkgs.lib.concatStrings [ + "${unstable.guile-gnutls}/share/guile/site/3.0:" + "$GUILE_LOAD_PATH" + ]}" + ${unstable.guile_3_0}/bin/guile "$@" + '') + sbcl + ]; + }; + + HTTP = pkgs.buildEnv { + name = "http"; + paths = [ caddy apacheHttpd httpie ]; + }; + CSS = pkgs.buildEnv { name = "css"; paths = [ - (callPackage ./packages/csstidy/default.nix {}) - (callPackage ./packages/stylelint/default.nix {}) + (previous.callPackage ./packages/csstidy/package.nix { }) + nodePackages.stylelint csslint sassc ]; @@ -496,21 +587,21 @@ in SQL = pkgs.buildEnv { name = "sql"; paths = [ - (callPackage ./packages/skeema/default.nix {}) - (callPackage ./packages/sqldef/default.nix {}) pgformatter + skeema sqlfluff sqlint sqlite sqlitebrowser + unstable.sqldef ]; }; YAML = pkgs.buildEnv { name = "yaml"; paths = [ - (callPackage ./packages/ruamel.yaml.cmd/default.nix {}) - (callPackage ./packages/yaml2nix/default.nix {}) + (previous.callPackage ./packages/yaml2nix/package.nix { }) + (callPackage ./packages/ruamel.yaml.cmd/package.nix { }) python39Packages.yamllint yj ]; @@ -519,11 +610,10 @@ in Xorg-Aarch64 = pkgs.buildEnv { name = "xorg-aarch64"; paths = [ - (callPackage ./packages/x11vnc/default.nix {}) - (callPackage ./packages/xprintidle/default.nix {}) glxinfo unclutter-xfixes wmctrl + x11vnc xbindkeys xdotool xorg.xauth @@ -539,6 +629,7 @@ in xorg.xrdb xorg.xset xorg.xsetroot + xprintidle xsel xzoom ]; @@ -570,16 +661,16 @@ in Graphical-Aarch64 = pkgs.buildEnv { name = "graphical-aarch64"; paths = [ - unstable.fsearch + unstable.firefox + unstable.ungoogled-chromium audacity - firefox freerdp + fsearch galculator gpicview pavucontrol pcmanfm sylpheed - ungoogled-chromium xsane ]; }; @@ -587,15 +678,15 @@ in Terminal-Aarch64 = pkgs.buildEnv { name = "terminal-aarch64"; paths = [ - unstable.fzf + unstable.vimHugeX alsaUtils + fzf libnotify redshift rofi rxvt-unicode skippy-xd tigervnc - vimHugeX ]; }; }; diff --git a/.config/nixpkgs/helpers/mkShellMinimal.nix b/.config/nixpkgs/helpers/mkShellMinimal.nix deleted file mode 100644 index 54d0e68..0000000 --- a/.config/nixpkgs/helpers/mkShellMinimal.nix +++ /dev/null @@ -1,83 +0,0 @@ -### Source: https://github.com/NixOS/nixpkgs/commit/459771518d44f60b59a19381d07b12297908215d -### Article: https://fzakaria.com/2021/08/02/a-minimal-nix-shell.html -### Usage: - -# let -# -# name = "nix-shell.minimal"; -# pkgs = import <nixpkgs> { }; -# -# mkShellMinimal = pkgs.callPackage (builtins.fetchurl { -# url = "https://raw.githubusercontent.com/tdro/dotfiles/0aac4414559235f8cd8c454acce30c0471e0f6b1/.config/nixpkgs/helpers/mkShellMinimal.nix"; -# sha256 = "06vbyyhaam3nmzimzasz6la590ni9cbdql3jy29hhw9ln0xf09yy"; -# }) { }; -# -# in mkShellMinimal { -# buildInputs = [ pkgs.coreutils pkgs.hello pkgs.gnugrep pkgs.which ]; -# ENV = "ENV"; -# shellHook = '' -# hello -# printf "%s\n" "$ENV" -# which mkdir -# printf "\nPATH is $PATH\n\n" -# grep --version -# export PS1='\h (${name}) \W \$ ' -# ''; -# } - -{ lib }: - -{ packages ? [ ], inputsFrom ? [ ], buildInputs ? [ ], nativeBuildInputs ? [ ] -, propagatedBuildInputs ? [ ], propagatedNativeBuildInputs ? [ ], ... }@attrs: -let - mergeInputs = name: - (attrs.${name} or [ ]) ++ (lib.subtractLists inputsFrom - (lib.flatten (lib.catAttrs name inputsFrom))); - - rest = builtins.removeAttrs attrs [ - "packages" - "inputsFrom" - "buildInputs" - "nativeBuildInputs" - "propagatedBuildInputs" - "propagatedNativeBuildInputs" - "shellHook" - ]; - - pkgs = import (builtins.fetchTarball { - url = "https://releases.nixos.org/nixos/21.05/nixos-21.05.1510.a165aeceda9/nixexprs.tar.xz"; - sha256 = "124s05b0xk97arw0vvq8b4wcvsw6024dfdzwcx9qjxf3a2zszmam"; - }) { }; - - stdenv = pkgs.stdenvNoCC.override { - cc = null; - preHook = ""; - allowedRequisites = null; - initialPath = pkgs.coreutils; - extraNativeBuildInputs = [ ]; - }; - -in stdenv.mkDerivation ({ - name = "nix-shell"; - phases = [ "nobuildPhase" ]; - - buildInputs = mergeInputs "buildInputs"; - nativeBuildInputs = packages ++ (mergeInputs "nativeBuildInputs"); - propagatedBuildInputs = mergeInputs "propagatedBuildInputs"; - propagatedNativeBuildInputs = mergeInputs "propagatedNativeBuildInputs"; - - shellHook = '' - PATH=${stdenv.initialPath}/bin - for package in ${toString buildInputs}; do - export PATH=$package/bin:$PATH - done - '' + lib.concatStringsSep "\n" - (lib.catAttrs "shellHook" (lib.reverseList inputsFrom ++ [ attrs ])); - - nobuildPhase = '' - echo - echo "This derivation is not meant to be built, aborting"; - echo - exit 1 - ''; -} // rest) diff --git a/.config/nixpkgs/helpers/mkShellPure.nix b/.config/nixpkgs/helpers/mkShellPure.nix deleted file mode 100644 index 8ffa941..0000000 --- a/.config/nixpkgs/helpers/mkShellPure.nix +++ /dev/null @@ -1,59 +0,0 @@ -### Experimental pure version of mkShellMinimal that clears all environment variables. -### Derived Source: https://github.com/NixOS/nixpkgs/commit/459771518d44f60b59a19381d07b12297908215d -### Article: https://fzakaria.com/2021/08/02/a-minimal-nix-shell.html -### Usage: - -# let -# -# name = "nix-shell.pure"; -# pkgs = import <nixpkgs> { }; -# -# mkShellPure = pkgs.callPackage (builtins.fetchurl { -# url = "https://raw.githubusercontent.com/tdro/dotfiles/b710281b132056105709c03dda1899a6afc68a93/.config/nixpkgs/helpers/mkShellPure.nix"; -# sha256 = "1ciwifsx2hrp0ymm077zfb5q8ravrk545bda1q249y2spw9np4ms"; -# }) { }; -# -# in mkShellPure { -# packages = [ pkgs.hello pkgs.coreutils ]; -# shellHook = '' -# export ENV=ENV -# env -# hello -# export PS1='\h (${name}) \W \$ ' -# ''; -# } - -{ writeTextFile, writeScript, system }: - -{ shellHook ? "", packages ? [ ], ... }@attrs: -derivation ({ - inherit system; - - name = "pure-nix-shell"; - - "stdenv" = writeTextFile rec { - name = "setup"; - executable = true; - destination = "/${name}"; - text = '' - set -e - NEW_PATH= - for package in ${toString packages}; do - export NEW_PATH=$package/bin:$NEW_PATH - done - exec /usr/bin/env --ignore-environment /bin/sh -c " - export PATH=$NEW_PATH - ${shellHook} - /bin/sh - " - ''; - }; - - builder = writeScript "builder.sh" '' - #!/bin/sh - echo - echo "This derivation is not meant to be built, unless you want to capture the dependency closure."; - echo - export > $out - ''; -} // attrs) diff --git a/.config/nixpkgs/packages/awesome/package.nix b/.config/nixpkgs/packages/awesome/package.nix new file mode 100644 index 0000000..6bf06ee --- /dev/null +++ b/.config/nixpkgs/packages/awesome/package.nix @@ -0,0 +1,98 @@ +{ lib, stdenv, fetchgit, lua, cairo, librsvg, cmake, imagemagick, pkg-config +, gdk-pixbuf, xorg, libstartup_notification, libxdg_basedir, libpthreadstubs +, xcb-util-cursor, makeWrapper, pango, gobject-introspection, which, dbus +, nettools, git, doxygen, xmlto, docbook_xml_dtd_45, docbook_xsl +, findXMLCatalogs, libxkbcommon, xcbutilxrm, hicolor-icon-theme, asciidoctor +, gtk3, makeFontsConf, ghostscript }: + +let luaEnv = lua.withPackages (ps: [ ps.lgi ps.ldoc ]); + +in stdenv.mkDerivation rec { + pname = "awesome"; + version = "d2dc428e567e378a3f534c4d748543413fc30172"; + + src = fetchgit { + rev = version; + url = "https://github.com/awesomeWM/awesome.git"; + sha256 = "sha256-gViEIuDn9ygzVof8e5e7cqDVPNeKDzlXK8V8oYzUUgA="; + }; + + nativeBuildInputs = [ + asciidoctor + cmake + docbook_xml_dtd_45 + docbook_xsl + doxygen + findXMLCatalogs + imagemagick + makeWrapper + pkg-config + xmlto + ]; + + outputs = [ "out" "doc" ]; + + FONTCONFIG_FILE = makeFontsConf { + fontDirectories = [ "${ghostscript}/share/ghostscript/fonts" ]; + }; + + propagatedUserEnvPkgs = [ hicolor-icon-theme ]; + + buildInputs = [ + cairo + dbus + gdk-pixbuf + git + gobject-introspection + gtk3 + libpthreadstubs + librsvg + libstartup_notification + libxdg_basedir + libxkbcommon + lua + luaEnv + nettools + pango + xcb-util-cursor + xcbutilxrm + xorg.libXau + xorg.libXdmcp + xorg.libxcb + xorg.libxshmfence + xorg.xcbutil + xorg.xcbutilimage + xorg.xcbutilkeysyms + xorg.xcbutilrenderutil + xorg.xcbutilwm + ]; + + cmakeFlags = [ "-DOVERRIDE_VERSION=${version}" ] + ++ lib.optional lua.pkgs.isLuaJIT + "-DLUA_LIBRARY=${lua}/lib/libluajit-5.1.so"; + + GI_TYPELIB_PATH = "${pango.out}/lib/girepository-1.0"; + LUA_CPATH = "${luaEnv}/lib/lua/${lua.luaversion}/?.so"; + LUA_PATH = "${luaEnv}/share/lua/${lua.luaversion}/?.lua;;"; + + postInstall = '' + mv "$out/bin/awesome" "$out/bin/.awesome-wrapped" + makeWrapper "$out/bin/.awesome-wrapped" "$out/bin/awesome" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --add-flags '--search ${luaEnv}/lib/lua/${lua.luaversion}' \ + --add-flags '--search ${luaEnv}/share/lua/${lua.luaversion}' \ + --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" + + wrapProgram $out/bin/awesome-client \ + --prefix PATH : "${which}/bin" + ''; + + passthru = { inherit lua; }; + + meta = with lib; { + license = licenses.gpl2Plus; + platforms = platforms.linux; + homepage = "https://awesomewm.org/"; + description = "Highly configurable, dynamic window manager for X"; + }; +} diff --git a/.config/nixpkgs/packages/beaker-browser/default.nix b/.config/nixpkgs/packages/beaker-browser/default.nix deleted file mode 100644 index 9de96db..0000000 --- a/.config/nixpkgs/packages/beaker-browser/default.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ lib, fetchurl, appimageTools }: - -let version = "1.1.0"; in - -appimageTools.wrapType2 { - name = "beaker-browser"; - - src = fetchurl { - url = "https://github.com/beakerbrowser/beaker/releases/download/${version}/Beaker.Browser-${version}.AppImage"; - sha256 = "07hcyr6vyim8vrvw120v5jjfvy5jkcaqc3wgqgyf6prbqdx71dkp"; - }; - - meta = with lib; { - homepage = "https://beakerbrowser.com"; - license = licenses.mit; - description = "An experimental peer-to-peer Web browser"; - }; -} diff --git a/.config/nixpkgs/packages/boomer/default.nix b/.config/nixpkgs/packages/boomer/package.nix index 66e1c58..885de27 100644 --- a/.config/nixpkgs/packages/boomer/default.nix +++ b/.config/nixpkgs/packages/boomer/package.nix @@ -1,17 +1,15 @@ -{ lib, stdenv, fetchFromGitHub, makeWrapper, nim, libX11, libXrandr, libGL }: +{ lib, stdenv, fetchgit, makeWrapper, nim, libX11, libXrandr, libGL }: let - x11-nim = fetchFromGitHub { - repo = "x11"; - owner = "nim-lang"; + x11-nim = fetchgit { + url = "https://github.com/nim-lang/x11"; rev = "b7bae7dffa4e3f12370d5a18209359422ae8bedd"; sha256 = "1j3kyp0vf2jl20c67gcm759jnfskdf0wc4ajrdbvfxias285c5sb"; }; - opengl-nim = fetchFromGitHub { - repo = "opengl"; - owner = "nim-lang"; + opengl-nim = fetchgit { + url = "https://github.com/nim-lang/opengl"; rev = "a6fb649e5bd94d8420d4a11287092a4dc3e922b4"; sha256 = "0w62lfrdms2vb24kd4jnypwmqvdk5x9my1dinnqdq82yl4nz6d0s"; }; @@ -19,12 +17,12 @@ let in stdenv.mkDerivation rec { pname = "boomer"; - version = "d16c65ce3eae31f4c77de1585b340d8d624c1252"; - src = fetchFromGitHub { - owner = "tsoding"; - repo = "boomer"; + version = "cc0f5311193da8361ee782a421d6bc4ad8541cf3"; + + src = fetchgit { + url = "https://github.com/tsoding/boomer"; rev = version; - sha256 = "1kqfg2i5p1zrvl9jx0ig7f0ckxnaxi9svr0bs52aavwydldnnl8d"; + sha256 = "sha256-3yg0nuJE0Rrw13VEQ/CjjjPN5G4ytssgiesdXwlHaF8="; }; buildInputs = [ nim libX11 libXrandr libGL makeWrapper ]; @@ -44,9 +42,7 @@ in stdenv.mkDerivation rec { fixupPhase = '' runHook preFixup - patchelf --set-rpath ${ - lib.makeLibraryPath [ stdenv.cc.cc libX11 libXrandr libGL ] - } $out/bin/boomer + patchelf --set-rpath ${lib.makeLibraryPath [ stdenv.cc.cc libX11 libXrandr libGL ]} $out/bin/boomer wrapProgram "$out/bin/boomer" --set LIBGL_ALWAYS_SOFTWARE 1 runHook postFixup ''; diff --git a/.config/nixpkgs/packages/chromexup/default.nix b/.config/nixpkgs/packages/chromexup/package.nix index c6c4622..c6c4622 100644 --- a/.config/nixpkgs/packages/chromexup/default.nix +++ b/.config/nixpkgs/packages/chromexup/package.nix diff --git a/.config/nixpkgs/packages/csstidy/default.nix b/.config/nixpkgs/packages/csstidy/package.nix index a20123a..5ccf7ff 100644 --- a/.config/nixpkgs/packages/csstidy/default.nix +++ b/.config/nixpkgs/packages/csstidy/package.nix @@ -14,12 +14,14 @@ stdenv.mkDerivation rec { buildInputs = [ sconsPackages.scons_3_0_1 ]; preBuild = '' - sed -i "/env = Environment()/a env.Replace(CXX='${gcc}/bin/g++')" SConstruct + sed --in-place "/env = Environment()/a env.Replace(CXX='${gcc}/bin/g++')" SConstruct ''; installPhase = '' - mkdir -p $out/bin + runHook preInstall + mkdir --parents $out/bin cp release/csstidy/csstidy $out/bin + runHook postInstall ''; meta = with lib; { diff --git a/.config/nixpkgs/packages/dmenu/default.nix b/.config/nixpkgs/packages/dmenu/package.nix index 496929f..f0f933c 100644 --- a/.config/nixpkgs/packages/dmenu/default.nix +++ b/.config/nixpkgs/packages/dmenu/package.nix @@ -27,7 +27,6 @@ stdenv.mkDerivation rec { license = lib.licenses.mit; platforms = lib.platforms.all; homepage = "https://tools.suckless.org/dmenu"; - maintainers = with lib.maintainers; [ pSub globin ]; description = "A generic, highly customizable, and efficient menu for the X Window System"; }; } diff --git a/.config/nixpkgs/packages/edl/default.nix b/.config/nixpkgs/packages/edl/default.nix deleted file mode 100644 index a9dba83..0000000 --- a/.config/nixpkgs/packages/edl/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ lib, fetchgit, python38 }: - -python38.pkgs.buildPythonApplication rec { - - pname = "edl"; - url = "https://github.com/bkerler/edl.git"; - version = "6ca9feb8ac7b260a0395d4f51e9e91fc0feda058"; - - src = fetchgit { - inherit url; - rev = version; - sha256 = "1lpgamg6wkwpj3mxcn8nrxxw90svx5xy3kahk8rdf09ph6wlii4x"; - }; - - doCheck = false; - dontBuild = true; - - propagatedBuildInputs = with python38.pkgs; [ - pyusb - pyserial - docopt - pycryptodome - qrcode - ]; - - pythonEnv = python38.withPackages (ps: with ps; propagatedBuildInputs); - - installPhase = '' - mkdir -p $out/share/edl - cp -rT ${src} $out/share/edl - makeWrapper ${pythonEnv}/bin/python $out/bin/edl --add-flags $out/share/edl/edl.py - makeWrapper ${pythonEnv}/bin/python $out/bin/edl-diag --add-flags $out/share/edl/diag.py - makeWrapper ${pythonEnv}/bin/python $out/bin/edl-tcpclient --add-flags $out/share/edl/tcpclient.py - makeWrapper ${pythonEnv}/bin/python $out/bin/edl-fhloaderparse --add-flags $out/share/edl/fhloaderparse.py - ''; - - meta = with lib; { - homepage = url; - license = licenses.mit; - platforms = platforms.linux; - description = "QC Firehose / Sahara Client / QC Diag Tools :)"; - }; -} diff --git a/.config/nixpkgs/packages/emacs-batch-indent/package.nix b/.config/nixpkgs/packages/emacs-batch-indent/package.nix new file mode 100644 index 0000000..92042af --- /dev/null +++ b/.config/nixpkgs/packages/emacs-batch-indent/package.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, fetchgit }: + +stdenv.mkDerivation rec { + + name = "emacs-batch-indent"; + version = "145e8771b9709a82e3df82cdc06c6d9505de905d"; + url = "https://github.com/cwfoo/emacs-batch-indent"; + + src = fetchgit { + inherit url; + rev = version; + sha256 = "sha256-Qqg/ZLbfTZnH2aO7ZW2XiiVBqEvK2+LMo2Kz6HSnOCE="; + }; + + phases = [ "unpackPhase" "installPhase" ]; + + installPhase = '' + runHook preInstall + mkdir --parents $out/bin + cp emacs-batch-indent $out/bin + runHook postInstall + ''; + + meta = with lib; { + homepage = url; + license = licenses.gpl3; + platforms = platforms.linux; + description = "Indent Common Lisp, Emacs Lisp, and Scheme from the command line using Emacs."; + }; +} diff --git a/.config/nixpkgs/packages/gnaural/default.nix b/.config/nixpkgs/packages/gnaural/default.nix deleted file mode 100644 index e4a3849..0000000 --- a/.config/nixpkgs/packages/gnaural/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ lib, stdenv, fetchurl, portaudio, libsndfile, pkg-config, gtk2, gcc48 }: - -stdenv.mkDerivation rec { - - pname = "gnaural"; - version = "20110606"; - - src = fetchurl { - url = "https://iweb.dl.sourceforge.net/project/gnaural/Gnaural/gnaural_${version}.tar.xz"; - sha256 = "1gq519c0imsh57zklyi0f8h64l3ai48lh672c834470z8c6kvbfi"; - }; - - patches = [ - (fetchurl { - name = "gnaural.patch"; - url = "https://aur.archlinux.org/cgit/aur.git/plain/gnaural.patch?h=gnaural"; - sha256 = "15bplxcvjml8cz7pi2fwb444fpp7ypsh279642v8s9hgl3i3jvsz"; - }) - ]; - - buildInputs = [ gcc48 portaudio pkg-config gtk2 libsndfile ]; - - meta = with lib; { - license = licenses.gpl2; - platforms = platforms.linux; - homepage = "http://gnaural.sourceforge.net/"; - description = "Auditory binaural-beat generator"; - }; -} diff --git a/.config/nixpkgs/packages/hugo/default.nix b/.config/nixpkgs/packages/hugo/default.nix deleted file mode 100644 index 446d396..0000000 --- a/.config/nixpkgs/packages/hugo/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ lib, buildGoModule, fetchgit, installShellFiles }: - -buildGoModule rec { - pname = "hugo"; - version = "0.94.2"; - - src = fetchgit { - rev = "v${version}"; - url = "https://github.com/gohugoio/hugo.git"; - sha256 = "1pdahyw0addlyl1nq6igbnrvwbkqriy7w1nwhkiz0apj2gi70l3w"; - }; - - doCheck = false; - proxyVendor = true; - vendorSha256 = "1jnmnm43w109jv3rhfchnqsq0k0lv59frddjns0axpac7vd5zjpb"; - - tags = [ "extended" ]; - subPackages = [ "." ]; - nativeBuildInputs = [ installShellFiles ]; - - postInstall = '' - $out/bin/hugo gen man - installManPage man/* - ''; - - meta = { - license = lib.licenses.asl20; - homepage = "https://gohugo.io"; - description = "A fast and modern static website engine"; - maintainers = with lib.maintainers; [ schneefux Br1ght0ne Frostman ]; - }; -} diff --git a/.config/nixpkgs/packages/mkbootfs/default.nix b/.config/nixpkgs/packages/mkbootfs/package.nix index b8c6050..b8c6050 100644 --- a/.config/nixpkgs/packages/mkbootfs/default.nix +++ b/.config/nixpkgs/packages/mkbootfs/package.nix diff --git a/.config/nixpkgs/packages/mkbootimg/default.nix b/.config/nixpkgs/packages/mkbootimg/package.nix index 738fd33..738fd33 100644 --- a/.config/nixpkgs/packages/mkbootimg/default.nix +++ b/.config/nixpkgs/packages/mkbootimg/package.nix diff --git a/.config/nixpkgs/packages/nerdfonts-dejavu-sans-mono/default.nix b/.config/nixpkgs/packages/nerdfonts-dejavu-sans-mono/package.nix index 36f03ed..866a6af 100644 --- a/.config/nixpkgs/packages/nerdfonts-dejavu-sans-mono/default.nix +++ b/.config/nixpkgs/packages/nerdfonts-dejavu-sans-mono/package.nix @@ -4,7 +4,6 @@ stdenv.mkDerivation rec { pname = "nerdfonts-dejavu-sans-mono"; version = "2.1.0"; - buildInputs = [ unzip ]; src = fetchurl { @@ -13,23 +12,18 @@ stdenv.mkDerivation rec { }; phases = [ "unpackPhase" "installPhase" ]; - unpackPhase = '' unzip ${src} ''; installPhase = '' - mkdir -p $out/share/fonts/nerdfonts-dejavu-sans-mono - cp -r * $out/share/fonts/nerdfonts-dejavu-sans-mono + runHook preInstall + mkdir --parents $out/share/fonts/nerdfonts-dejavu-sans-mono + cp --recursive * $out/share/fonts/nerdfonts-dejavu-sans-mono + runHook postInstall ''; meta = with lib; { - description = '' - Nerd Fonts is a project that attempts to patch as many developer targeted - and/or used fonts as possible. The patch is to specifically add a high - number of additional glyphs from popular 'iconic fonts' such as Font - Awesome, Devicons, Octicons, and others. - ''; - homepage = "https://github.com/ryanoasis/nerd-fonts"; license = licenses.mit; platforms = platforms.all; + homepage = "https://github.com/ryanoasis/nerd-fonts"; }; } diff --git a/.config/nixpkgs/packages/nixpkgs.lib/package.nix b/.config/nixpkgs/packages/nixpkgs.lib/package.nix new file mode 100644 index 0000000..6f5c4e8 --- /dev/null +++ b/.config/nixpkgs/packages/nixpkgs.lib/package.nix @@ -0,0 +1,59 @@ +{ lib, stdenv, fetchgit, writeTextFile }: + +stdenv.mkDerivation rec { + + pname = "nixpkgs.lib"; + version = "f9d58ee370835f4c658cd0a62e8def4bda8b1f32"; + + src = fetchgit { + url = "https://github.com/nix-community/nixpkgs.lib.git"; + sha256 = "sha256-KnumcE6UuNQPapsr32KjcRVDVuRGWB5PnAczHoo9nJc="; + rev = version; + }; + + installPhase = '' + runHook preInstall + mkdir --parents $out + cp --recursive --no-target-directory $src $out + runHook postInstall + ''; + + patches = [ + (writeTextFile { + name = "remove-nonexistent-external-calls.patch"; + text = '' + --- a/lib/default.nix + +++ b/lib/default.nix + @@ -24,8 +24,8 @@ let + # packaging + customisation = callLibs ./customisation.nix; + derivations = callLibs ./derivations.nix; + - maintainers = import ../maintainers/maintainer-list.nix; + - teams = callLibs ../maintainers/team-list.nix; + + maintainers = { }; + + teams = { }; + meta = callLibs ./meta.nix; + sources = callLibs ./sources.nix; + versions = callLibs ./versions.nix; + diff --git a/lib/trivial.nix b/lib/trivial.nix + index 5d4fad8..d679563 100644 + --- a/lib/trivial.nix + +++ b/lib/trivial.nix + @@ -164,7 +164,7 @@ rec { + version = release + versionSuffix; + + /* Returns the current nixpkgs release number as string. */ + - release = lib.strings.fileContents ../.version; + + release = ""; + + /* The latest release that is supported, at the time of release branch-off, + if applicable. + ''; + }) + ]; + + meta = with lib; { + description = "nixpkgs lib for cheap instantiation "; + homepage = "https://github.com/nix-community/nixpkgs.lib"; + }; +} diff --git a/.config/nixpkgs/packages/ntrviewer/default.nix b/.config/nixpkgs/packages/ntrviewer/package.nix index af155bf..af155bf 100644 --- a/.config/nixpkgs/packages/ntrviewer/default.nix +++ b/.config/nixpkgs/packages/ntrviewer/package.nix diff --git a/.config/nixpkgs/packages/pdf2htmlex/package.nix b/.config/nixpkgs/packages/pdf2htmlex/package.nix new file mode 100644 index 0000000..82021ef --- /dev/null +++ b/.config/nixpkgs/packages/pdf2htmlex/package.nix @@ -0,0 +1,17 @@ +{ lib, fetchurl, appimageTools }: + +appimageTools.wrapType2 rec { + name = "pdf2htmlex"; + version = "0.18.8.rc1"; + + src = fetchurl { + url = "https://github.com/pdf2htmlEX/pdf2htmlEX/releases/download/v${version}/pdf2htmlEX-${version}-master-20200630-Ubuntu-focal-x86_64.AppImage"; + sha256 = "sha256-Ed4lg6Orzl8UH9f6+x/qLGexWIblRta3Z1xgABLmq4w="; + }; + + meta = with lib; { + license = licenses.gpl3; + platforms = platforms.linux; + description = "Convert PDF to HTML without losing text or format. "; + }; +} diff --git a/.config/nixpkgs/packages/phar-composer/package.nix b/.config/nixpkgs/packages/phar-composer/package.nix new file mode 100644 index 0000000..79ee71b --- /dev/null +++ b/.config/nixpkgs/packages/phar-composer/package.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchurl, makeWrapper, lib, php }: + +stdenv.mkDerivation rec { + + pname = "phar-composer"; + version = "1.4.0"; + + src = fetchurl { + url = "https://github.com/clue/${pname}/releases/download/v${version}/${pname}-${version}.phar"; + sha256 = "sha256-GUKo/l8b0UkQpGHsyagjgtAkZbfmjdhWOXkZT5vLB8A="; + }; + + dontUnpack = true; + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + runHook preInstall + mkdir --parents $out/bin + install -D $src $out/libexec/${pname}/${pname}.phar + makeWrapper ${php}/bin/php $out/bin/${pname} --add-flags "$out/libexec/${pname}/${pname}.phar" + runHook postInstall + ''; + + meta = { + license = lib.licenses.mit; + homepage = "https://github.com/clue/phar-composer#readme"; + description = "Simple phar creation for every PHP project managed via Composer."; + }; +} diff --git a/.config/nixpkgs/packages/planner/default.nix b/.config/nixpkgs/packages/planner/default.nix deleted file mode 100644 index 9921372..0000000 --- a/.config/nixpkgs/packages/planner/default.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ lib, stdenvNoCC, fetchgit, pkgconfig, intltool, automake111x, autoconf -, libtool, gnome2, libxslt, python2, gcc48 }: - -stdenvNoCC.mkDerivation rec { - - pname = "planner"; - version = "de43d655f9f8103993129cde9de3d0e080d0546c"; - - src = fetchgit { - url = "https://gitlab.gnome.org/World/planner.git"; - sha256 = "1zpcswdpcjhllk7phy3z1zyxcgqr4pp0vf5fgpg5f3gqpk4xvwyg"; - rev = version; - }; - - nativeBuildInputs = with gnome2; [ - autoconf - automake111x - gnome-common - gtk-doc - intltool - libtool - pkgconfig - scrollkeeper - ]; - - buildInputs = with gnome2; [ - GConf - gcc48 - gtk - libglade - libgnomecanvas - libgnomeui - libxslt - python2.pkgs.pygtk - ]; - - enableParallelBuilding = true; - preConfigure = "./autogen.sh"; - makeFlags = [ "CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS" ]; - configureFlags = [ "--enable-python" "--enable-python-plugin" ]; - - meta = with lib; { - description = "Project management application for GNOME"; - homepage = "https://wiki.gnome.org/Apps/Planner"; - license = licenses.gpl2Plus; - platforms = platforms.all; - }; -} diff --git a/.config/nixpkgs/packages/qprompt/package.nix b/.config/nixpkgs/packages/qprompt/package.nix new file mode 100644 index 0000000..67a4c83 --- /dev/null +++ b/.config/nixpkgs/packages/qprompt/package.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, fetchgit, cmake, extra-cmake-modules, qt5, libsForQt5 }: + +stdenv.mkDerivation rec { + name = "qprompt"; + version = "v1.1.2"; + + src = fetchgit { + rev = version; + url = "https://github.com/Cuperino/QPrompt.git"; + sha256 = "sha256-EeLJC77X9lcjvbr+TkIpMHO0YFdI91tiVUplde3wEzA="; + }; + + buildInputs = [ + cmake + extra-cmake-modules + qt5.wrapQtAppsHook + qt5.qtquickcontrols2.dev + qt5.qtx11extras.dev + libsForQt5.ki18n.dev + libsForQt5.kcoreaddons.dev + libsForQt5.kiconthemes.dev + libsForQt5.kirigami2.dev + ]; + + meta = { + license = with lib.licenses; [ gpl3 cc-by-sa-40 ]; + homepage = "https://github.com/Cuperino/QPrompt#qprompt"; + description = "Personal teleprompter software for all video creators."; + }; +} diff --git a/.config/nixpkgs/packages/redbean/package.nix b/.config/nixpkgs/packages/redbean/package.nix new file mode 100644 index 0000000..7ede4c6 --- /dev/null +++ b/.config/nixpkgs/packages/redbean/package.nix @@ -0,0 +1,29 @@ +{ lib, stdenv, fetchurl }: + +stdenv.mkDerivation rec { + + pname = "redbean"; + version = "2.0.1"; + + src = fetchurl { + url = "https://redbean.dev/redbean-${version}.com"; + sha256 = "sha256-W5GpecQdDwawkrkmENxSqCz40PkyrLh34FtiUwD7Kzk="; + }; + + dontFixup = true; + dontUnpack = true; + + installPhase = '' + runHook preInstall + mkdir --parents $out/bin + cp ${src} $out/bin/${pname}.com + chmod +x $out/bin/${pname}.com + runHook postInstall + ''; + + meta = with lib; { + license = licenses.isc; + platforms = platforms.all; + homepage = "https://github.com/jart/cosmopolitan"; + }; +} diff --git a/.config/nixpkgs/packages/rofi/package.nix b/.config/nixpkgs/packages/rofi/package.nix new file mode 100644 index 0000000..420d2d2 --- /dev/null +++ b/.config/nixpkgs/packages/rofi/package.nix @@ -0,0 +1,49 @@ +{ stdenv, lib, fetchgit, autoreconfHook, pkg-config, libxkbcommon, pango +, which, git, cairo, libxcb, xcbutil, xcbutilwm, xcbutilxrm, xcb-util-cursor +, libstartup_notification, bison, flex, librsvg, check }: + +stdenv.mkDerivation rec { + pname = "rofi-unwrapped"; + version = "1.7.0"; + + src = fetchgit { + rev = version; + fetchSubmodules = true; + url = "https://github.com/davatorium/rofi.git"; + sha256 = "03wdy56b3g8p2czb0qydrddyyhj3x037pirnhyqr5qbfczb9a63v"; + }; + + preConfigure = '' + patchShebangs "script" + # root not present in build /etc/passwd + sed -i 's/~root/~nobody/g' test/helper-expand.c + ''; + + nativeBuildInputs = [ autoreconfHook pkg-config ]; + buildInputs = [ + libxkbcommon + pango + cairo + git + bison + flex + librsvg + check + libstartup_notification + libxcb + xcbutil + xcbutilwm + xcbutilxrm + xcb-util-cursor + which + ]; + + doCheck = false; + + meta = with lib; { + license = licenses.mit; + platforms = with platforms; linux; + homepage = "https://github.com/davatorium/rofi"; + description = "Window switcher, run dialog and dmenu replacement"; + }; +} diff --git a/.config/nixpkgs/packages/ruamel.yaml.cmd/default.nix b/.config/nixpkgs/packages/ruamel.yaml.cmd/package.nix index 6f6bacc..362b4bd 100644 --- a/.config/nixpkgs/packages/ruamel.yaml.cmd/default.nix +++ b/.config/nixpkgs/packages/ruamel.yaml.cmd/package.nix @@ -71,14 +71,15 @@ in python39.pkgs.buildPythonApplication rec { installPhase = '' runHook preInstall - mkdir -p $out/bin + mkdir --parents $out/bin cp ${ruamel.yaml.cmd}/bin/yaml $out/bin - sed -i 's|^#!.*$|#!${pythonEnvironment}/bin/python|' $out/bin/yaml + sed --in-place 's|^#!.*$|#!${pythonEnvironment}/bin/python|' $out/bin/yaml runHook postInstall ''; dontUnpack = true; dontBuild = true; doCheck = false; + format = "other"; inherit meta; } diff --git a/.config/nixpkgs/packages/rufo/default.nix b/.config/nixpkgs/packages/rufo/default.nix deleted file mode 100644 index 7d0a539..0000000 --- a/.config/nixpkgs/packages/rufo/default.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ buildRubyGem, fetchgit, lib, ruby, git }: - -buildRubyGem rec { - - inherit ruby; - gemName = "rufo"; - name = "${gemName}-${version}"; - version = "b3f3aedf759d792761ad52e6bddb9ed51ffc6731"; - - src = fetchgit { - rev = version; - url = "https://github.com/ruby-formatter/rufo.git"; - sha256 = "1z87ivd8xpm3ggbcv3sjr4c0ws6733yfh8l6xg5f0km6ax7s8h1j"; - }; - - buildInputs = [ git ruby ]; - - preBuild = '' - rm spec/fixtures/file_finder/only_gemfiles/a.gemspec - ''; - - preFixup = '' - cp exe/rufo $out/bin/rufo - cp -rT lib $out/lib - ''; - - meta = with lib; { - inherit version; - license = licenses.mit; - description = "The Ruby Formatter"; - homepage = "https://github.com/ruby-formatter/rufo"; - }; -} diff --git a/.config/nixpkgs/packages/rxvt-unicode/default.nix b/.config/nixpkgs/packages/rxvt-unicode/default.nix deleted file mode 100644 index 24c9afb..0000000 --- a/.config/nixpkgs/packages/rxvt-unicode/default.nix +++ /dev/null @@ -1,99 +0,0 @@ -{ lib, stdenv, fetchurl, fetchpatch, makeDesktopItem, libX11, libXt, libXft -, libXrender, ncurses, fontconfig, freetype, pkg-config, gdk-pixbuf, perl }: - -let - pname = "rxvt-unicode"; - version = "9.26"; - description = "A clone of the well-known terminal emulator rxvt"; - - desktopItem = makeDesktopItem { - name = pname; - exec = "urxvt"; - genericName = pname; - comment = description; - desktopName = "URxvt"; - icon = "utilities-terminal"; - categories = "System;TerminalEmulator;"; - }; - -in stdenv.mkDerivation { - - inherit pname version; - name = "${pname}-unwrapped-${version}"; - - src = fetchurl { - url = "http://dist.schmorp.de/rxvt-unicode/Attic/rxvt-unicode-${version}.tar.bz2"; - sha256 = "12y9p32q0v7n7rhjla0j2g9d5rj2dmwk20c9yhlssaaxlawiccb4"; - }; - - buildInputs = [ - fontconfig - freetype - gdk-pixbuf - libX11 - libXft - libXrender - libXt - ncurses - perl - pkg-config - ]; - - outputs = [ "out" "terminfo" ]; - - patches = [ - (fetchpatch { - name = "enable-wide-glyphs.patch"; - url = "https://raw.githubusercontent.com/owl4ce/nelumbonaceae/e6be9823ec9ab7c14a23f5a25dfb33ce705d9950/x11-terms/rxvt-unicode/files/enable-wide-glyphs.patch"; - sha256 = "0vfpidysc1kxr3zark2y1b8fxx7k2lck79ccb7b97mgz04mxchvd"; - }) - (fetchpatch { - name = "improve-font-rendering.patch"; - url = "https://raw.githubusercontent.com/owl4ce/nelumbonaceae/e6be9823ec9ab7c14a23f5a25dfb33ce705d9950/x11-terms/rxvt-unicode/files/improve-font-rendering.patch"; - sha256 = "0xkwvn204n679v4mgpw2dl4c30pdl622l6b2iw6sr0gijga8zqcd"; - }) - (fetchpatch { - name = "256-color-resources.patch"; - url = "https://raw.githubusercontent.com/NixOS/nixpkgs/2bb3a9da24ca60d9f5bed69f679a1ec50dbdf997/pkgs/applications/terminal-emulators/rxvt-unicode/patches/256-color-resources.patch"; - sha256 = "00yw67faybglypnvz59k7m3cp5bvdwaiq0771zfi1x7drz3xfql6"; - }) - (fetchpatch { - name = "fixed-layout-size.patch"; - url = "https://raw.githubusercontent.com/owl4ce/nelumbonaceae/b593a0eb7bb45a0b471c2ee2aa02b0e66776b9c0/x11-terms/rxvt-unicode/files/fixed-layout-size.patch"; - sha256 = "148vpln61zs3qv4sipcc5c7fiyc4d4q6k10r7bpr0k0q4pzshljh"; - }) - ]; - - configureFlags = [ - "--enable-perl" - "--enable-unicode3" - "--enable-256-color" - "--enable-wide-glyphs" - "--with-terminfo=$terminfo/share/terminfo" - ]; - - CFLAGS = [ "-I${freetype.dev}/include/freetype2" ]; - LDFLAGS = [ "-lfontconfig" "-lXrender" "-lpthread" ]; - - preConfigure = '' - mkdir -p $terminfo/share/terminfo - export TERMINFO=$terminfo/share/terminfo - mkdir -p $out/$(dirname ${perl.libPrefix}) - ln -s $out/lib/urxvt $out/${perl.libPrefix} - ''; - - postInstall = '' - mkdir -p $out/nix-support - echo "$terminfo" >> $out/nix-support/propagated-user-env-packages - cp -r ${desktopItem}/share/applications/ $out/share/ - ''; - - meta = { - inherit description; - license = lib.licenses.gpl3; - platforms = lib.platforms.unix; - maintainers = with lib.maintainers; [ rnhmjoj ]; - downloadPage = "http://dist.schmorp.de/rxvt-unicode/Attic/"; - homepage = "http://software.schmorp.de/pkg/rxvt-unicode.html"; - }; -} diff --git a/.config/nixpkgs/packages/scribus/default.nix b/.config/nixpkgs/packages/scribus/default.nix deleted file mode 100644 index 10be9e7..0000000 --- a/.config/nixpkgs/packages/scribus/default.nix +++ /dev/null @@ -1,71 +0,0 @@ -{ lib, stdenv, fetchurl, pkg-config, freetype, lcms, libtiff, libxml2 -, gnome2, qt4, python2, cups, fontconfig, libjpeg, zlib, libpng, xorg -, cairo, podofo, hunspell, boost, cmake, imagemagick, ghostscript }: - -let - icon = fetchurl { - url = "https://gist.githubusercontent.com/ejpcmac/a74b762026c9bc4000be624c3d085517/raw/18edc497c5cb6fdeef1c8aede37a0ee68413f9d3/scribus-icon-centered.svg"; - sha256 = "0hq3i7c2l50445an9glhhg47kj26y16svfajc6naqn307ph9vzc3"; - }; - - pythonEnv = python2.withPackages (ps: [ ps.tkinter ps.pillow ]); -in stdenv.mkDerivation rec { - pname = "scribus"; - version = "1.4.8"; - - src = fetchurl { - url = "mirror://sourceforge/${pname}/${pname}/${pname}-${version}.tar.xz"; - sha256 = "0bq433myw6h1siqlsakxv6ghb002rp3mfz5k12bg68s0k6skn992"; - }; - - nativeBuildInputs = [ pkg-config cmake ]; - buildInputs = with xorg; [ - boost - cairo - cups - fontconfig - freetype - gnome2.libart_lgpl - hunspell - imagemagick - lcms - libX11 - libXau - libXaw - libXdmcp - libXext - libXi - libXinerama - libXtst - libjpeg - libpng - libpthreadstubs - libtiff - libxml2 - podofo - pythonEnv - qt4 - zlib - ]; - - postPatch = '' - substituteInPlace scribus/util_ghostscript.cpp \ - --replace 'QString gsName("gs");' \ - 'QString gsName("${ghostscript}/bin/gs");' - ''; - - postInstall = '' - for i in 16 24 48 64 96 128 256 512; do - mkdir -p $out/share/icons/hicolor/''${i}x''${i}/apps - convert -background none -resize ''${i}x''${i} ${icon} $out/share/icons/hicolor/''${i}x''${i}/apps/scribus.png - done - ''; - - meta = { - maintainers = [ lib.maintainers.marcweber ]; - platforms = lib.platforms.linux; - description = "Desktop Publishing (DTP) and Layout program for Linux"; - homepage = "https://www.scribus.net"; - license = lib.licenses.gpl2; - }; -} diff --git a/.config/nixpkgs/packages/skeema/default.nix b/.config/nixpkgs/packages/skeema/default.nix deleted file mode 100644 index 9e9cee7..0000000 --- a/.config/nixpkgs/packages/skeema/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ lib, fetchgit, buildGoModule }: - -buildGoModule rec { - pname = "skeema"; - version = "v1.5.0"; - url = "https://github.com/skeema/skeema"; - - src = fetchgit { - inherit url; - rev = version; - sha256 = "0mrspmgiww0jlpml24r5f4ail8153f2liva88w9760fd5aky3ix3"; - }; - - vendorSha256 = null; - - doCheck = false; - - meta = with lib; { - homepage = url; - license = licenses.asl20; - description = "Schema management CLI for MySQL"; - }; -} diff --git a/.config/nixpkgs/packages/sowon/default.nix b/.config/nixpkgs/packages/sowon/package.nix index 38d06b0..38d06b0 100644 --- a/.config/nixpkgs/packages/sowon/default.nix +++ b/.config/nixpkgs/packages/sowon/package.nix diff --git a/.config/nixpkgs/packages/sqldef/default.nix b/.config/nixpkgs/packages/sqldef/default.nix deleted file mode 100644 index 983ea3f..0000000 --- a/.config/nixpkgs/packages/sqldef/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ lib, fetchgit, buildGoModule }: - -buildGoModule rec { - pname = "sqldef"; - version = "v0.8.9"; - url = "https://github.com/k0kubun/sqldef"; - - src = fetchgit { - inherit url; - rev = version; - sha256 = "1hvx05qwy2g4r1zc1k2f9xv4z815p5jh1a6g41fdlxskjl3kyyf5"; - }; - - vendorSha256 = "066184zmwdhd8dbkbmwds8aimiawfcvb8px8z1q48c949gvywlx7"; - - doCheck = false; - - meta = with lib; { - homepage = url; - license = licenses.mit; - description = "Idempotent MySQL/PostgreSQL schema management by SQL"; - }; -} diff --git a/.config/nixpkgs/packages/stylelint/default.nix b/.config/nixpkgs/packages/stylelint/default.nix deleted file mode 100644 index 1c00b8f..0000000 --- a/.config/nixpkgs/packages/stylelint/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ lib, stdenv, fetchgit, yarn, mkYarnPackage }: - -mkYarnPackage rec { - - pname = "stylelint"; - url = "https://github.com/stylelint/stylelint.git"; - version = "b01ed25dfa3e8231a976eef76bd5e81fb535b1e9"; - sha256 = "18v71nxxbfwqz5by9nq9921bdar3ww0z5z7h0y6rgnpi6iy5ck4x"; - rev = version; - src = fetchgit { inherit url rev sha256; }; - packageJSON = "${src}/package.json"; - yarnLock = "${yarn-lock}/yarn.lock"; - defaultYarnFlags = [ "--offline" "--frozen-lockfile" "--ignore-engines" "--ignore-scripts" ]; - - yarn-lock = stdenv.mkDerivation { - inherit src; - name = "${pname}-yarn.lock"; - buildInputs = [ yarn ]; - installPhase = '' - runHook preInstall - export HOME=. - mkdir -p $out - yarn import --ignore-engines --ignore-scripts - cp yarn.lock $out - runHook postInstall - ''; - dontBuild = true; - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - outputHash = "sha256-ER+AkEQTIDL0oE1CQEMpXdGbZtcz2KUYkP2mw3eDKHU="; - }; - - meta = with lib; { - homepage = url; - license = licenses.mit; - description = "A mighty, modern linter that helps you avoid errors and enforce conventions in your styles."; - }; -} diff --git a/.config/nixpkgs/packages/systemd2nix/default.nix b/.config/nixpkgs/packages/systemd2nix/package.nix index 4953183..b4c6103 100644 --- a/.config/nixpkgs/packages/systemd2nix/default.nix +++ b/.config/nixpkgs/packages/systemd2nix/package.nix @@ -14,11 +14,14 @@ python38.pkgs.buildPythonApplication rec { doCheck = false; dontBuild = true; + format = "other"; installPhase = '' - mkdir -p $out/bin $out/share/${pname} + runHook preInstall + mkdir --parents $out/bin $out/share/${pname} cp ${src}/${pname}.py $out/share/${pname} makeWrapper ${python38}/bin/python $out/bin/${pname} --add-flags $out/share/${pname}/${pname}.py + runHook postInstall ''; meta = with lib; { diff --git a/.config/nixpkgs/packages/tiemu/default.nix b/.config/nixpkgs/packages/tiemu/package.nix index f703981..f703981 100644 --- a/.config/nixpkgs/packages/tiemu/default.nix +++ b/.config/nixpkgs/packages/tiemu/package.nix diff --git a/.config/nixpkgs/packages/tilp2/default.nix b/.config/nixpkgs/packages/tilp2/default.nix deleted file mode 100644 index 743514c..0000000 --- a/.config/nixpkgs/packages/tilp2/default.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ stdenv, lib, fetchurl, fetchpatch, autoreconfHook, pkg-config, intltool, glib -, gnome2, gtk2, gfm, libticables2, libticalcs2, libticonv, libtifiles2 }: - -stdenv.mkDerivation rec { - pname = "tilp2"; - version = "1.18"; - src = fetchurl { - url = "mirror://sourceforge/tilp/${pname}-${version}.tar.bz2"; - sha256 = "0isf73bjwk06baz2gm3vpdh600gqck9ca4aqxzb089dmxriv6fkv"; - }; - - patches = fetchpatch { - name = "remove-broken-kde-support.patch"; - url = "https://aur.archlinux.org/cgit/aur.git/plain/remove-broken-kde-support.patch?h=tilp"; - sha256 = "1fn6vh7r45spkwpmkvffkbn7zrcsdrs5mjmspd5rwi3jc12cy3ny"; - }; - - nativeBuildInputs = [ autoreconfHook pkg-config intltool ]; - - buildInputs = [ - glib - gtk2 - gnome2.libglade - gfm - libticables2 - libticalcs2 - libticonv - libtifiles2 - ]; - - meta = with lib; { - changelog = "http://lpg.ticalc.org/prj_tilp/news.html"; - description = "Transfer data between Texas Instruments graphing calculators and a computer"; - homepage = "http://lpg.ticalc.org/prj_tilp/"; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ luc65r ]; - platforms = with platforms; linux ++ darwin; - }; -} diff --git a/.config/nixpkgs/packages/validatornu/default.nix b/.config/nixpkgs/packages/validatornu/default.nix deleted file mode 100644 index a013c08..0000000 --- a/.config/nixpkgs/packages/validatornu/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ lib, stdenv, fetchzip, jdk, makeWrapper, ... }: - -stdenv.mkDerivation rec { - pname = "validatornu"; - version = "20.6.30"; - - src = fetchzip { - url = "https://github.com/validator/validator/releases/download/${version}/vnu.jar_${version}.zip"; - sha256 = "1jls0zpkczsqyzibgjxz11cjy8i62sdfi9cmmn3r7qcl1b4iw1p0"; - }; - - nativeBuildInputs = [ makeWrapper ]; - - installPhase = '' - runHook preInstall - mkdir --parents $out/bin $out/share/{java,licenses,doc}/$pname - cp vnu.jar $out/share/java/$pname/vnu.jar - cp LICENSE $out/share/licenses/$pname/LICENSE - cp README.md $out/share/doc/$pname/README.md - cp index.html $out/share/doc/$pname/index.html - makeWrapper ${jdk}/bin/java $out/bin/${pname} \ - --add-flags "-jar $out/share/java/validatornu/vnu.jar" - runHook postInstall - ''; - - meta = with lib; { - license = licenses.mit; - platforms = platforms.linux; - homepage = "https://github.com/validator/validator#the-nu-html-checker-vnu--"; - description = "Nu Html Checker – Helps you catch problems in your HTML/CSS/SVG"; - }; -} diff --git a/.config/nixpkgs/packages/wf-shell/package.nix b/.config/nixpkgs/packages/wf-shell/package.nix new file mode 100644 index 0000000..42e4121 --- /dev/null +++ b/.config/nixpkgs/packages/wf-shell/package.nix @@ -0,0 +1,32 @@ +{ stdenv, lib, fetchgit, meson, ninja, pkg-config, wayland, alsa-lib, gtkmm3 +, gtk-layer-shell, pulseaudio, wayfire, wf-config, libdbusmenu-gtk3 }: + +stdenv.mkDerivation rec { + pname = "wf-shell"; + version = "9a9af00dc02780357466e27c5e77e316469e7a37"; + + src = fetchgit { + url = "https://github.com/WayfireWM/wf-shell"; + sha256 = "sha256-qkfN6JfAp5UaHXNuU6Jwu87YNCyjEJzVLLy8EUG5UNE"; + }; + + mesonFlags = [ "--sysconfdir" "/etc" ]; + nativeBuildInputs = [ meson ninja pkg-config wayland ]; + + buildInputs = [ + alsa-lib + gtk-layer-shell + gtkmm3 + libdbusmenu-gtk3 + pulseaudio + wayfire + wf-config + ]; + + meta = with lib; { + homepage = "https://github.com/WayfireWM/wf-shell"; + description = "GTK3-based panel for Wayfire"; + license = licenses.mit; + platforms = platforms.unix; + }; +} diff --git a/.config/nixpkgs/packages/x11vnc/default.nix b/.config/nixpkgs/packages/x11vnc/default.nix deleted file mode 100644 index 0507e45..0000000 --- a/.config/nixpkgs/packages/x11vnc/default.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ lib, stdenv, fetchgit, openssl, zlib, libjpeg, xorg -, libvncserver, autoreconfHook, pkg-config }: - -stdenv.mkDerivation rec { - pname = "x11vnc"; - version = "f07df92816ef10b7382a542125955df7f4156a5c"; - - src = fetchgit { - url = "https://github.com/LibVNC/x11vnc"; - rev = version; - sha256 = "1vgkgcqz6fxjgdzqpnw05lg30hdczrfgyzj39z1ips9vcjpb6v8s"; - }; - - nativeBuildInputs = [ autoreconfHook pkg-config ]; - - buildInputs = [ - xorg.libXfixes - xorg.xorgproto - openssl - xorg.libXdamage - zlib - xorg.libX11 - libjpeg - xorg.libXtst - xorg.libXinerama - xorg.libXrandr - xorg.libXext - xorg.libXi - xorg.libXrender - libvncserver - ]; - - preConfigure = '' - configureFlags="--mandir=$out/share/man" - ''; - - meta = with lib; { - description = "A VNC server connected to a real X11 screen"; - homepage = "https://github.com/LibVNC/x11vnc/"; - platforms = platforms.linux; - license = licenses.gpl2; - maintainers = with maintainers; [ OPNA2608 ]; - }; -} diff --git a/.config/nixpkgs/packages/xprintidle/default.nix b/.config/nixpkgs/packages/xprintidle/default.nix deleted file mode 100644 index fc7c3e9..0000000 --- a/.config/nixpkgs/packages/xprintidle/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, libX11, libXScrnSaver, libXext, meson -, pkg-config, ninja }: - -stdenv.mkDerivation rec { - pname = "xprintidle"; - version = "0.2.4"; - - src = fetchFromGitHub { - owner = "g0hl1n"; - repo = pname; - rev = version; - sha256 = "10na3ymzfhpq800wsyd23m57ngz69nn5i10c7p9iya8hzi7cf20a"; - }; - - nativeBuildInputs = [ meson pkg-config ninja ]; - buildInputs = [ libX11 libXScrnSaver libXext ]; - - meta = with lib; { - inherit version; - description = "A command-line tool to print idle time from libXss"; - homepage = "https://github.com/g0hl1n/xprintidle"; - license = licenses.gpl2; - maintainers = [ maintainers.raskin ]; - platforms = platforms.linux; - }; -} diff --git a/.config/nixpkgs/packages/yaml2nix/default.nix b/.config/nixpkgs/packages/yaml2nix/package.nix index af4ae38..af4ae38 100644 --- a/.config/nixpkgs/packages/yaml2nix/default.nix +++ b/.config/nixpkgs/packages/yaml2nix/package.nix diff --git a/.config/nixpkgs/packages/youtube-dl/default.nix b/.config/nixpkgs/packages/youtube-dl/default.nix deleted file mode 100644 index 5a0ab1d..0000000 --- a/.config/nixpkgs/packages/youtube-dl/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ lib, python39, ffmpeg, rtmpdump, phantomjs2, atomicparsley -, ffmpegSupport ? true, rtmpSupport ? true, phantomjsSupport ? false -, hlsEncryptedSupport ? true, withAlias ? true }: - -with python39.pkgs; - -buildPythonPackage rec { - pname = "yt-dlp"; - version = "2021.10.22"; - - src = fetchPypi { - inherit pname; - version = builtins.replaceStrings [ ".0" ] [ "." ] version; - sha256 = "sha256-okuWZr0iNBSeTajE8Wu45fdGwpQo0S7gT8HBG1JHowc="; - }; - - propagatedBuildInputs = [ websockets mutagen ] ++ lib.optional hlsEncryptedSupport pycryptodomex; - - makeWrapperArgs = let packagesToBinPath = [ atomicparsley ] - ++ lib.optional ffmpegSupport ffmpeg - ++ lib.optional rtmpSupport rtmpdump - ++ lib.optional phantomjsSupport phantomjs2; - in [ ''--prefix PATH : "${lib.makeBinPath packagesToBinPath}"'' ]; - - doCheck = false; - setupPyBuildFlags = [ "build_lazy_extractors" ]; - postInstall = lib.optionalString withAlias ''ln -s "$out/bin/yt-dlp" "$out/bin/youtube-dl"''; - - meta = with lib; { - license = licenses.unlicense; - maintainers = with maintainers; [ mkg20001 ]; - homepage = "https://github.com/yt-dlp/yt-dlp/"; - changelog = "https://github.com/yt-dlp/yt-dlp/raw/${version}/Changelog.md"; - description = "Command-line tool to download videos from YouTube.com and other sites (youtube-dl fork)"; - }; -} diff --git a/.config/nixpkgs/shells/ansible.nix b/.config/nixpkgs/shells/ansible.nix deleted file mode 100644 index 3f6de79..0000000 --- a/.config/nixpkgs/shells/ansible.nix +++ /dev/null @@ -1,28 +0,0 @@ -let - - # nix-shell -E 'import (builtins.fetchurl "$url")' - - name = "nix-shell.ansible"; - pkgs = import <nixpkgs> { }; - project = "${builtins.getEnv "HOME"}/Shares/Projects/infrastructure/ansible"; - -in pkgs.mkShell { - - inherit name; - - buildInputs = with pkgs; [ python38.pkgs.pip ansible_2_9 ]; - - shellHook = '' - export virtualenvs=$HOME/.local/share/virtualenvs - mkdir -p $virtualenvs - python -m venv $virtualenvs/ansible-mitogen - . $virtualenvs/ansible-mitogen/bin/activate - python -m pip install mitogen==0.2.9 - export ANSIBLE_STRATEGY_PLUGINS=$virtualenvs/ansible-mitogen/lib/python3.8/site-packages/ansible_mitogen/plugins - export ANSIBLE_STRATEGY=mitogen_linear - export PS1='\h (${name}) \W \$ ' - cd '${project}' || exit 1 - ssh -T git@github.com - ''; -} - diff --git a/.config/nixpkgs/shells/ansible/shell.nix b/.config/nixpkgs/shells/ansible/shell.nix new file mode 100644 index 0000000..96eb244 --- /dev/null +++ b/.config/nixpkgs/shells/ansible/shell.nix @@ -0,0 +1,29 @@ +let + + # nix-shell -E 'import (builtins.fetchurl "$url")' + + name = "nix-shell.ansible"; + + pkgs = import (builtins.fetchTarball { + url = "https://releases.nixos.org/nixos/21.11/nixos-21.11.336020.2128d0aa28e/nixexprs.tar.xz"; + sha256 = "0w8plbxms0di6gnh0k2yhj0pgxzxas7g5x0m01zjzixf16i2bapj"; + }) { }; + + project = "${builtins.getEnv "HOME"}/Shares/Projects/infrastructure/ansible"; + + python = pkgs.python39.withPackages (ps: with ps; [ mitogen ]); + +in pkgs.mkShell { + + inherit name; + + buildInputs = [ python pkgs.ansible_2_10 ]; + + shellHook = '' + export ANSIBLE_STRATEGY_PLUGINS=${python}/lib/*/site-packages/ansible_mitogen/plugins + export ANSIBLE_STRATEGY=mitogen_linear + export PS1='\h (${name}) \W \$ ' + cd '${project}' || exit 1 + ssh -T git@github.com + ''; +} diff --git a/.config/nixpkgs/shells/bubblewrap/shell.nix b/.config/nixpkgs/shells/bubblewrap/shell.nix new file mode 100644 index 0000000..aee8a8b --- /dev/null +++ b/.config/nixpkgs/shells/bubblewrap/shell.nix @@ -0,0 +1,36 @@ +let + + # nix-shell -E 'import (builtins.fetchurl "$url")' + # https://github.com/containers/bubblewrap/blob/main/demos/bubblewrap-shell.sh + # https://manpages.debian.org/testing/bubblewrap/bwrap.1.en.html + + name = "nix-shell.bubblewrap"; + + pkgs = import (builtins.fetchTarball { + url = "https://releases.nixos.org/nixos/22.11/nixos-22.11.466.596a8e828c5/nixexprs.tar.xz"; + sha256 = "1367bad5zz0mfm4czb6p0s0ni38f0x1ffh02z76rx4nranipqbgg"; + }) { }; + + bubblewrap = arguments@{ ... }: pkgs.writeShellApplication { + inherit name; + text = '' + PATH=${pkgs.lib.strings.makeBinPath [ pkgs.bubblewrap ]} + bwrap \ + '' + pkgs.lib.strings.concatStringsSep " \\\n" + (pkgs.lib.attrsets.mapAttrsToList (argument: value: "--${argument} ${value} ") + arguments) + "/bin/sh\n"; + }; + + jail = bubblewrap { + clearenv = ""; + setenv = "PATH ${pkgs.lib.strings.makeBinPath [ pkgs.busybox ]}"; + ro-bind = "/nix /nix" + " --ro-bind /bin /bin"; + }; + +in pkgs.mkShell { + inherit name; + shellHook = '' + printf '%s\n' "${jail}/bin/${jail.name}" + exec "${jail}/bin/${jail.name}" + ''; +} diff --git a/.config/nixpkgs/shells/cake.nix b/.config/nixpkgs/shells/cake/shell.nix index 401a967..2991136 100644 --- a/.config/nixpkgs/shells/cake.nix +++ b/.config/nixpkgs/shells/cake/shell.nix @@ -1,24 +1,24 @@ let # nix-shell -E 'import (builtins.fetchurl "$url")' + # NIX_CONFIG="sandbox = relaxed" nix-shell --option builders '' shell.nix name = "nix-shell.cake"; pkgs = import (builtins.fetchTarball { - url = "https://releases.nixos.org/nixos/21.05/nixos-21.05.650.eaba7870ffc/nixexprs.tar.xz"; - sha256 = "08fpds1bkv9106c6s5w3p5r4v3dc24bhk9asm9vqbxxypjglqg9l"; }) { }; - - alpine-3-12-amd64 = pkgs.dockerTools.pullImage rec { - imageName = "alpine"; - imageDigest = "sha256:2a8831c57b2e2cb2cda0f3a7c260d3b6c51ad04daea0b3bfc5b55f489ebafd71"; - sha256 = "1px8xhk0a3b129cc98d3wm4s0g1z2mahnrxd648gkdbfsdj9dlxp"; - finalImageName = imageName; - finalImageTag = "3.12"; + url = "https://releases.nixos.org/nixos/23.11/nixos-23.11.6510.a5e4bbcb4780/nixexprs.tar.xz"; + sha256 = "0f73pbh4j89wgk7rn9xp0q8ybw15zkhw0prjz5r37aaryjs8hnbd"; + }) { }; + + alpine = pkgs.fetchurl { + url = "https://dl-cdn.alpinelinux.org/alpine/v3.19/releases/x86_64/alpine-minirootfs-3.19.1-x86_64.tar.gz"; + sha256 = "sha256-GFEjzrbn0I8kSf/1VD2yBv+3nezYFGCNOZrUR+CPop4="; }; - cook = { name, src, contents ? [ ], path ? [ ], script ? "", prepare ? "", cleanup ? "", sha256 ? pkgs.lib.fakeSha256 }: pkgs.stdenvNoCC.mkDerivation { + cook = { name, src, contents ? [ ], path ? [ ], script ? "", prepare ? "", cleanup ? "" }: pkgs.stdenvNoCC.mkDerivation { + __noChroot = true; inherit name src contents; - phases = [ "unpackPhase" "installPhase" ]; + phases = [ "installPhase" ]; buildInputs = [ pkgs.proot pkgs.rsync pkgs.tree pkgs.kmod ]; bootstrap = pkgs.writeScript "bootstrap-${name}" '' ${script} @@ -28,12 +28,12 @@ let installPhase = '' set -euo pipefail mkdir --parents rootfs $out/rootfs - tar --extract --file=layer.tar -C rootfs + tar --extract --file=${src} -C rootfs ${prepare} cp $bootstrap rootfs/bootstrap - proot --cwd=/ --root-id --rootfs=rootfs /usr/bin/env - /bin/sh -euc '. /etc/profile && /bootstrap' + proot --cwd=/ --root-id --rootfs=rootfs /usr/bin/env - /bin/sh -euc 'BASH_VERSION= . /etc/profile && /bootstrap' printf 'PATH=${pkgs.lib.strings.makeBinPath path}:$PATH' >> rootfs/etc/profile [ -n "$contents" ] && { @@ -48,18 +48,14 @@ let ${cleanup} printf '\n%s\n\n' "$(du --all --max-depth 1 --human-readable rootfs | sort --human-numeric-sort)" - cp -rT rootfs $out/rootfs + cp --recursive --no-target-directory rootfs $out/rootfs ''; - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - outputHash = sha256; }; - bake = { name, image, size ? "1G", debug ? false, kernel ? pkgs.linux, options ? [ ], modules ? [ ], uuid ? "99999999-9999-9999-9999-999999999999", sha256 ? pkgs.lib.fakeSha256 }: let + bake = { name, image, size ? "1G", debug ? false, kernel ? pkgs.linux, options ? [ ], modules ? [ ], uuid ? "99999999-9999-9999-9999-999999999999" }: let initrd = cook { - inherit sha256; name = "initrd-${name}"; - src = alpine-3-12-amd64; + src = alpine; script = '' rm -rf home opt media root run srv tmp var printf '#!/bin/sh -eu @@ -134,22 +130,36 @@ let losetup --detach "$LOOP" ''; - alpine = cook { + system = cook { name = "alpine"; - src = alpine-3-12-amd64; - sha256 = "1ss4rh1fgs99h0v6czqq5rnfk1cag1ldazarm9jr5a0ahc4bnk0v"; + src = alpine; contents = [ pkgs.glibc pkgs.gawk ]; path = [ pkgs.gawk ]; script = '' cat /etc/alpine-release sed -i 's/#ttyS0/ttyS0/' /etc/inittab + printf 'migh7Lib\nmigh7Lib\n' | adduser alpine ''; }; - alpine-machine = bake { + machine = cook { + name = "alpine"; + src = alpine; + contents = [ pkgs.glibc pkgs.gawk ]; + path = [ pkgs.gawk ]; + script = '' + apk update + apk upgrade + apk add openrc + cat /etc/alpine-release + sed -i 's/#ttyS0/ttyS0/' /etc/inittab + printf 'migh7Lib\nmigh7Lib\n' | adduser alpine + ''; + }; + + virtual-machine = bake { name = "alpine-machine"; - image = alpine; - sha256 = "0k5migqcrf5hz99ka5p6pr9qv86bd69y7fbs9m5qpby9qh3xmskf"; + image = machine; kernel = pkgs.linuxPackages_5_10.kernel; options = [ "console=tty1" "console=ttyS0" ]; size = "128M"; @@ -178,11 +188,6 @@ let /usr/bin/env - /bin/sh -c '. /etc/profile && sh' ''; - # doas ${alpine-machine} - # sudo ${alpine-machine} - # qemu-system-x86_64 -nographic -drive if=virtio,file=./${alpine-machine.name}.img,format=raw - # qemu-system-x86_64 -curses -drive if=virtio,file=./${alpine-machine.name}.img,format=raw - in pkgs.mkShell { inherit name; @@ -191,8 +196,14 @@ in pkgs.mkShell { shellHook = '' export PS1='\h (${name}) \W \$ ' + + # sudo ${virtual-machine} + # doas ${virtual-machine} + # qemu-system-x86_64 -nographic -drive if=virtio,file=./${virtual-machine.name}.img,format=raw + # qemu-system-x86_64 -curses -drive if=virtio,file=./${virtual-machine.name}.img,format=raw + ${container { - rootfs = "${alpine}/rootfs"; + rootfs = "${system}/rootfs"; binds = [ "/proc" "/dev" ]; options = [ "--verbose=0" ]; }} diff --git a/.config/nixpkgs/shells/coreboot.nix b/.config/nixpkgs/shells/coreboot/shell.nix index 242c621..242c621 100644 --- a/.config/nixpkgs/shells/coreboot.nix +++ b/.config/nixpkgs/shells/coreboot/shell.nix diff --git a/.config/nixpkgs/shells/falcon.nix b/.config/nixpkgs/shells/falcon/shell.nix index 7bd0b54..7bd0b54 100644 --- a/.config/nixpkgs/shells/falcon.nix +++ b/.config/nixpkgs/shells/falcon/shell.nix diff --git a/.config/nixpkgs/shells/firejail/shell.nix b/.config/nixpkgs/shells/firejail/shell.nix new file mode 100644 index 0000000..4f5e5e1 --- /dev/null +++ b/.config/nixpkgs/shells/firejail/shell.nix @@ -0,0 +1,48 @@ +let + + # nix-shell -E 'import (builtins.fetchurl "$url")' + # https://www.man7.org/linux/man-pages/man1/Firejail.1.html + + name = "nix-shell.firejail"; + + pkgs = import (builtins.fetchTarball { + url = "https://releases.nixos.org/nixos/22.11/nixos-22.11.466.596a8e828c5/nixexprs.tar.xz"; + sha256 = "1367bad5zz0mfm4czb6p0s0ni38f0x1ffh02z76rx4nranipqbgg"; + }) { }; + + firejail = { + rootfs ? "rootfs", + options ? [ ], + path ? [ pkgs.busybox ], + entrypoint ? "/bin/sh" + }: + pkgs.writeShellApplication { + inherit name; + text = '' + set -euxo pipefail + PATH=${pkgs.lib.strings.makeBinPath [ pkgs.firejail pkgs.coreutils ]} + mkdir --parents '${rootfs}' + firejail \ + --chroot '${rootfs}' \ + ${pkgs.lib.strings.concatMapStringsSep " " (value: value) options} \ + -- /usr/bin/env --ignore-environment ${ + pkgs.writeScript "entrypoint-${name}" '' + set -eu + export PATH=${pkgs.lib.strings.makeBinPath path} + ${entrypoint} + '' + }; + ''; + }; + + jail = firejail { + options = [ ]; + }; + +in pkgs.mkShell { + inherit name; + shellHook = '' + printf '%s\n' "${jail}/bin/${jail.name}" + exec "${jail}/bin/${jail.name}" + ''; +} diff --git a/.config/nixpkgs/shells/larynx-server/shell.nix b/.config/nixpkgs/shells/larynx-server/shell.nix new file mode 100644 index 0000000..9021e47 --- /dev/null +++ b/.config/nixpkgs/shells/larynx-server/shell.nix @@ -0,0 +1,54 @@ +let + + name = "nix-shell.larynx-server"; + + nixpkgs = import <nixpkgs> { }; + + pkgs = import (builtins.fetchTarball { + url = "https://releases.nixos.org/nixos/22.11/nixos-22.11.466.596a8e828c5/nixexprs.tar.xz"; + sha256 = "1367bad5zz0mfm4czb6p0s0ni38f0x1ffh02z76rx4nranipqbgg"; + }) { }; + + larynx = pkgs.stdenvNoCC.mkDerivation rec { + name = "larynx"; + version = "1.1.0"; + sourceRoot = "."; + + src = pkgs.dockerTools.exportImage { + fromImage = pkgs.dockerTools.pullImage rec { + imageName = "rhasspy/larynx"; + imageDigest = "sha256:ada5b443e2446b38ba61d764ec37c0ed78d46e659a011243967e7cc8e52311e3"; + sha256 = "sha256-TbaHNNMRGp4SWYC06WSmNr3igpiJagDKoD3TEnttYt8="; + finalImageName = imageName; + finalImageTag = version; + }; + diskSize = "3072"; + }; + + phases = [ "unpackPhase" "installPhase" ]; + + installPhase = '' + mkdir --parents $out/bin/larynx/app + cp --recursive home/larynx/app/.venv $out/bin/larynx/app + cp --recursive home/larynx/app/larynx $out/bin/larynx/app + ''; + }; + + fhs = pkgs.buildFHSUserEnv { + name = "larynx-server"; + runScript = "${pkgs.writeScriptBin name '' + export PYTHONPATH=/bin/larynx/app + /bin/larynx/app/.venv/bin/python3 -m larynx.server + ''}/bin/${name}"; + targetPkgs = pkgs: [ + larynx + pkgs.python39 + ]; + profile = "export FHS=1"; + }; + +in pkgs.mkShell { + inherit fhs; + inherit name; + shellHook = "exec ${fhs}/bin/${fhs.name}"; +} diff --git a/.config/nixpkgs/shells/larynx/shell.nix b/.config/nixpkgs/shells/larynx/shell.nix new file mode 100644 index 0000000..ac2e940 --- /dev/null +++ b/.config/nixpkgs/shells/larynx/shell.nix @@ -0,0 +1,54 @@ +let + + name = "nix-shell.larynx"; + + nixpkgs = import <nixpkgs> { }; + + pkgs = import (builtins.fetchTarball { + url = "https://releases.nixos.org/nixos/22.11/nixos-22.11.466.596a8e828c5/nixexprs.tar.xz"; + sha256 = "1367bad5zz0mfm4czb6p0s0ni38f0x1ffh02z76rx4nranipqbgg"; + }) { }; + + larynx = pkgs.stdenvNoCC.mkDerivation rec { + name = "larynx"; + version = "1.1.0"; + sourceRoot = "."; + + src = pkgs.dockerTools.exportImage { + fromImage = pkgs.dockerTools.pullImage rec { + imageName = "rhasspy/larynx"; + imageDigest = "sha256:ada5b443e2446b38ba61d764ec37c0ed78d46e659a011243967e7cc8e52311e3"; + sha256 = "sha256-TbaHNNMRGp4SWYC06WSmNr3igpiJagDKoD3TEnttYt8="; + finalImageName = imageName; + finalImageTag = version; + }; + diskSize = "3072"; + }; + + phases = [ "unpackPhase" "installPhase" ]; + + installPhase = '' + mkdir --parents $out/bin/larynx/app + cp --recursive home/larynx/app/.venv $out/bin/larynx/app + cp --recursive home/larynx/app/larynx $out/bin/larynx/app + ''; + }; + + fhs = pkgs.buildFHSUserEnv { + name = "larynx"; + runScript = "${pkgs.writeScriptBin name '' + export PYTHONPATH=/bin/larynx/app + /bin/larynx/app/.venv/bin/python3 -m larynx "$@" + ''}/bin/${name}"; + targetPkgs = pkgs: [ + larynx + pkgs.python39 + ]; + profile = "export FHS=1"; + }; + +in pkgs.mkShell { + inherit fhs; + inherit name; + shellHook = "exec ${fhs}/bin/${fhs.name}"; +} diff --git a/.config/nixpkgs/shells/mermaid-live-editor/shell.nix b/.config/nixpkgs/shells/mermaid-live-editor/shell.nix new file mode 100644 index 0000000..db89a42 --- /dev/null +++ b/.config/nixpkgs/shells/mermaid-live-editor/shell.nix @@ -0,0 +1,74 @@ +let + + name = "nix-shell.mermaid-live-editor"; + version = "bf6c54c00e84d8c7d541920607db72f50d775ba5"; + + pkgs = import (builtins.fetchTarball { + url = "https://releases.nixos.org/nixos/22.11/nixos-22.11.466.596a8e828c5/nixexprs.tar.xz"; + sha256 = "1367bad5zz0mfm4czb6p0s0ni38f0x1ffh02z76rx4nranipqbgg"; + }) { }; + + package = pkgs.callPackage ({ lib, stdenv, fetchgit, mkYarnModules }: + + stdenv.mkDerivation rec { + inherit version; + pname = "mermaid-live-editor-node-modules"; + + src = fetchgit { + rev = version; + url = "https://github.com/mermaid-js/mermaid-live-editor.git"; + sha256 = "sha256-SadZzBruGKh4LCR9vr87vl/HBEgVN8Qczi9+thGmNCE="; + }; + + node_modules = mkYarnModules { + inherit pname version; + yarnLock = "${src}/yarn.lock"; + packageJSON = "${src}/package.json"; + }; + + installPhase = '' + runHook preInstall + mkdir $out + cp --recursive --no-target-directory ${node_modules} $out + cd $out/node_modules + chmod +w . + ln --symbolic mermaid-live-editor/node_modules/svelte-preprocess . + runHook postInstall + ''; + + meta = with lib; { + homepage = url; + license = licenses.mit; + description = "Edit, preview and share mermaid charts/diagrams. New implementation of the live editor."; + }; + }) { }; + + shell = pkgs.writeShellApplication { + inherit name; + text = '' + /usr/bin/env --ignore-environment /bin/sh -c ${ + pkgs.writeScript name '' + export PS1='\h (${name}) \W \$ ' + export PATH=${ + pkgs.lib.strings.makeBinPath [ + package + pkgs.busybox + pkgs.git + pkgs.yarn + ] + } + git clone https://github.com/mermaid-js/mermaid-live-editor.git + cd mermaid-live-editor + git checkout '${version}' + ln -sf '${package}/node_modules' + stat .svelte-kit || yarn build + yarn preview + '' + }; + ''; + }; + +in pkgs.mkShell { + inherit name; + shellHook = "exec ${shell}/bin/${shell.name}"; +} diff --git a/.config/nixpkgs/shells/nixops.nix b/.config/nixpkgs/shells/nixops.nix deleted file mode 100644 index 270f1c4..0000000 --- a/.config/nixpkgs/shells/nixops.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ version ? "21.05" }: - -let - - # nix-shell -E 'import (builtins.fetchurl "$url")' - - inherit version; - pkgs = import <nixpkgs> { }; - name = "nix-shell.nixops.${version}."; - project = "${builtins.getEnv "HOME"}/Shares/Projects/infrastructure"; - channel = (import "${project}/nixos/versions.nix")."${version}".channel; - -in pkgs.mkShell { - - inherit name; - - shellHook = '' - export NIXOPS_STATE=nixos/deployments.nixops - export VAULT_TOKEN=$(cat $HOME/.local/share/vault/token) - export VAULT_ADDR='http://vault.test' - export NIX_PATH=${channel}/nixexprs.tar.xz - export _NIX_CHANNEL=${channel} - export PS1='\h (${name}''${_NIX_CHANNEL##*.}) \W \$ ' - cd '${project}' || exit 1 - ssh -T git@github.com - ''; -} diff --git a/.config/nixpkgs/shells/nsjail/shell.nix b/.config/nixpkgs/shells/nsjail/shell.nix new file mode 100644 index 0000000..d954588 --- /dev/null +++ b/.config/nixpkgs/shells/nsjail/shell.nix @@ -0,0 +1,52 @@ +let + + # nix-shell -E 'import (builtins.fetchurl "$url")' + # https://nsjail.dev/ + + name = "nix-shell.nsjail"; + + pkgs = import (builtins.fetchTarball { + url = "https://releases.nixos.org/nixos/22.11/nixos-22.11.466.596a8e828c5/nixexprs.tar.xz"; + sha256 = "1367bad5zz0mfm4czb6p0s0ni38f0x1ffh02z76rx4nranipqbgg"; + }) { }; + + nsjail = { + rootfs ? "rootfs", + options ? [ ], + path ? [ pkgs.busybox ], + entrypoint ? "/bin/sh" + }: + pkgs.writeShellApplication { + inherit name; + text = '' + set -euxo pipefail + PATH=${pkgs.lib.strings.makeBinPath [ pkgs.nsjail pkgs.coreutils ]} + mkdir --parents '${rootfs}' + nsjail \ + --chroot "$(pwd)"/'${rootfs}' \ + ${pkgs.lib.strings.concatMapStringsSep " " (value: value) options} \ + -- /usr/bin/env --ignore-environment ${ + pkgs.writeScript "entrypoint-${name}" '' + set -eu + export PATH=${pkgs.lib.strings.makeBinPath path} + ${entrypoint} + '' + }; + ''; + }; + + jail = nsjail { + options = [ + "--bindmount_ro /nix" + "--bindmount_ro /usr" + "--bindmount_ro /bin" + ]; + }; + +in pkgs.mkShell { + inherit name; + shellHook = '' + printf '%s\n' "${jail}/bin/${jail.name}" + exec "${jail}/bin/${jail.name}" + ''; +} diff --git a/.config/nixpkgs/shells/planner/shell.nix b/.config/nixpkgs/shells/planner/shell.nix new file mode 100644 index 0000000..079beda --- /dev/null +++ b/.config/nixpkgs/shells/planner/shell.nix @@ -0,0 +1,68 @@ +let + + name = "nix-shell.planner"; + + pkgs = (import (builtins.fetchTarball { + url = "https://releases.nixos.org/nixos/21.11/nixos-21.11.336020.2128d0aa28e/nixexprs.tar.xz"; + sha256 = "0w8plbxms0di6gnh0k2yhj0pgxzxas7g5x0m01zjzixf16i2bapj"; + }) { }); + + package = pkgs.callPackage ({ lib, stdenvNoCC, fetchgit, pkgconfig, intltool + , automake111x, autoconf, libtool, gnome2, libxslt, python2, gcc48 }: + stdenvNoCC.mkDerivation rec { + pname = "planner"; + version = "de43d655f9f8103993129cde9de3d0e080d0546c"; + src = fetchgit { + url = "https://gitlab.gnome.org/World/planner.git"; + sha256 = "1zpcswdpcjhllk7phy3z1zyxcgqr4pp0vf5fgpg5f3gqpk4xvwyg"; + rev = version; + }; + nativeBuildInputs = [ + autoconf + automake111x + gnome2.gnome-common + gnome2.gtk-doc + gnome2.scrollkeeper + intltool + libtool + pkgconfig + ]; + buildInputs = [ + gcc48 + gnome2.GConf + gnome2.gtk + gnome2.libglade + gnome2.libgnomecanvas + gnome2.libgnomeui + libxslt + python2.pkgs.pygtk + ]; + enableParallelBuilding = true; + preConfigure = "./autogen.sh"; + makeFlags = [ "CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS" ]; + configureFlags = [ "--enable-python" "--enable-python-plugin" ]; + meta = with lib; { + description = "Project management application for GNOME"; + homepage = "https://wiki.gnome.org/Apps/Planner"; + license = licenses.gpl2Plus; + platforms = platforms.all; + }; + }) { }; + + shell = pkgs.writeShellApplication { + inherit name; + text = '' + /usr/bin/env --ignore-environment /bin/sh -c ${ + pkgs.writeScript name '' + export PS1='\h (${name}) \W \$ ' + export PATH=${pkgs.lib.strings.makeBinPath [ package pkgs.busybox ]} + /bin/sh + '' + }; + ''; + }; + +in pkgs.mkShell { + inherit name package; + shellHook = "exec ${shell}/bin/${shell.name}"; +} diff --git a/.config/nixpkgs/shells/proot/shell.nix b/.config/nixpkgs/shells/proot/shell.nix new file mode 100644 index 0000000..46ed76f --- /dev/null +++ b/.config/nixpkgs/shells/proot/shell.nix @@ -0,0 +1,52 @@ +let + + # nix-shell -E 'import (builtins.fetchurl "$url")' + # https://manpages.ubuntu.com/manpages/trusty/man1/proot.1.html + + name = "nix-shell.proot"; + + pkgs = import (builtins.fetchTarball { + url = "https://releases.nixos.org/nixos/22.11/nixos-22.11.466.596a8e828c5/nixexprs.tar.xz"; + sha256 = "1367bad5zz0mfm4czb6p0s0ni38f0x1ffh02z76rx4nranipqbgg"; + }) { }; + + proot = { + rootfs ? "rootfs", + binds ? [ ], + options ? [ ], + path ? [ pkgs.busybox ], + entrypoint ? "/bin/sh" + }: + pkgs.writeShellApplication { + inherit name; + text = '' + set -euxo pipefail + PATH=${pkgs.lib.strings.makeBinPath [ pkgs.proot pkgs.coreutils ]} + mkdir --parents '${rootfs}' + proot \ + --rootfs='${rootfs}' \ + ${pkgs.lib.strings.concatMapStringsSep " " (option: "--bind=${option}") binds} \ + ${pkgs.lib.strings.concatMapStringsSep " " (value: value) options} \ + /usr/bin/env --ignore-environment ${ + pkgs.writeScript "entrypoint-${name}" '' + set -eu + export HISTFILE=/dev/null + export PATH=${pkgs.lib.strings.makeBinPath path} + ${entrypoint} + '' + }; + ''; + }; + + jail = proot { + binds = [ "/nix" "/usr" "/bin" ]; + options = [ "--cwd=/" "--verbose=0" ]; + }; + +in pkgs.mkShell { + inherit name; + shellHook = '' + printf '%s\n' "${jail}/bin/${jail.name}" + exec "${jail}/bin/${jail.name}" + ''; +} diff --git a/.config/nixpkgs/shells/pure/shell.nix b/.config/nixpkgs/shells/pure/shell.nix new file mode 100644 index 0000000..2e58365 --- /dev/null +++ b/.config/nixpkgs/shells/pure/shell.nix @@ -0,0 +1,22 @@ +let + + name = "nix-shell.pure"; + pkgs = import <nixpkgs> { }; + + shell = pkgs.writeShellApplication { + inherit name; + text = '' + /usr/bin/env --ignore-environment /bin/sh -c ${ + pkgs.writeScript name '' + export PS1='\h (${name}) \W \$ ' + export PATH=${pkgs.lib.strings.makeBinPath [ pkgs.busybox ]} + /bin/sh + '' + }; + ''; + }; + +in pkgs.mkShell { + inherit name; + shellHook = "exec ${shell}/bin/${shell.name}"; +} diff --git a/.config/nixpkgs/shells/scribus/shell.nix b/.config/nixpkgs/shells/scribus/shell.nix new file mode 100644 index 0000000..9658c0a --- /dev/null +++ b/.config/nixpkgs/shells/scribus/shell.nix @@ -0,0 +1,96 @@ +let + + name = "nix-shell.scribus"; + + pkgs = (import (builtins.fetchTarball { + url = "https://releases.nixos.org/nixos/21.11/nixos-21.11.336020.2128d0aa28e/nixexprs.tar.xz"; + sha256 = "0w8plbxms0di6gnh0k2yhj0pgxzxas7g5x0m01zjzixf16i2bapj"; + }) { }); + + package = pkgs.callPackage ({ lib, stdenv, fetchurl, pkg-config, freetype, lcms, libtiff + , libxml2, gnome2, qt4, python2, cups, fontconfig, libjpeg, zlib, libpng + , xorg, cairo, podofo, hunspell, boost, cmake, imagemagick, ghostscript }: + + let + icon = fetchurl { + url = "https://gist.githubusercontent.com/ejpcmac/a74b762026c9bc4000be624c3d085517/raw/18edc497c5cb6fdeef1c8aede37a0ee68413f9d3/scribus-icon-centered.svg"; + sha256 = "0hq3i7c2l50445an9glhhg47kj26y16svfajc6naqn307ph9vzc3"; + }; + pythonEnv = python2.withPackages (ps: [ ps.tkinter ps.pillow ]); + in stdenv.mkDerivation rec { + pname = "scribus"; + version = "1.4.8"; + + src = fetchurl { + url = "mirror://sourceforge/${pname}/${pname}/${pname}-${version}.tar.xz"; + sha256 = "0bq433myw6h1siqlsakxv6ghb002rp3mfz5k12bg68s0k6skn992"; + }; + + nativeBuildInputs = [ pkg-config cmake ]; + buildInputs = with xorg; [ + boost + cairo + cups + fontconfig + freetype + gnome2.libart_lgpl + hunspell + imagemagick + lcms + libX11 + libXau + libXaw + libXdmcp + libXext + libXi + libXinerama + libXtst + libjpeg + libpng + libpthreadstubs + libtiff + libxml2 + podofo + pythonEnv + qt4 + zlib + ]; + + postPatch = '' + substituteInPlace scribus/util_ghostscript.cpp \ + --replace 'QString gsName("gs");' \ + 'QString gsName("${ghostscript}/bin/gs");' + ''; + + postInstall = '' + for i in 16 24 48 64 96 128 256 512; do + mkdir -p $out/share/icons/hicolor/''${i}x''${i}/apps + convert -background none -resize ''${i}x''${i} ${icon} $out/share/icons/hicolor/''${i}x''${i}/apps/scribus.png + done + ''; + + meta = { + platforms = lib.platforms.linux; + description = "Desktop Publishing (DTP) and Layout program for Linux"; + homepage = "https://www.scribus.net"; + license = lib.licenses.gpl2; + }; + }) { }; + + shell = pkgs.writeShellApplication { + inherit name; + text = '' + /usr/bin/env --ignore-environment /bin/sh -c ${ + pkgs.writeScript name '' + export PS1='\h (${name}) \W \$ ' + export PATH=${pkgs.lib.strings.makeBinPath [ package pkgs.busybox ]} + /bin/sh + '' + }; + ''; + }; + +in pkgs.mkShell { + inherit name package; + shellHook = "exec ${shell}/bin/${shell.name}"; +} diff --git a/.config/nixpkgs/shells/tilp2/shell.nix b/.config/nixpkgs/shells/tilp2/shell.nix new file mode 100644 index 0000000..f57bc3b --- /dev/null +++ b/.config/nixpkgs/shells/tilp2/shell.nix @@ -0,0 +1,66 @@ +let + + name = "nix-shell.tilp2"; + + pkgs = (import (builtins.fetchTarball { + url = "https://releases.nixos.org/nixos/21.11/nixos-21.11.336020.2128d0aa28e/nixexprs.tar.xz"; + sha256 = "0w8plbxms0di6gnh0k2yhj0pgxzxas7g5x0m01zjzixf16i2bapj"; + }) { }); + + package = pkgs.callPackage ({ stdenv, lib, fetchurl, fetchpatch + , autoreconfHook, pkg-config, intltool, glib, gnome2, gtk2, gfm + , libticables2, libticalcs2, libticonv, libtifiles2 }: + + stdenv.mkDerivation rec { + pname = "tilp2"; + version = "1.18"; + src = fetchurl { + url = "mirror://sourceforge/tilp/${pname}-${version}.tar.bz2"; + sha256 = "0isf73bjwk06baz2gm3vpdh600gqck9ca4aqxzb089dmxriv6fkv"; + }; + + patches = fetchpatch { + name = "remove-broken-kde-support.patch"; + url = "https://aur.archlinux.org/cgit/aur.git/plain/remove-broken-kde-support.patch?h=tilp"; + sha256 = "1fn6vh7r45spkwpmkvffkbn7zrcsdrs5mjmspd5rwi3jc12cy3ny"; + }; + + nativeBuildInputs = [ autoreconfHook pkg-config intltool ]; + + buildInputs = [ + glib + gtk2 + gnome2.libglade + gfm + libticables2 + libticalcs2 + libticonv + libtifiles2 + ]; + + meta = with lib; { + changelog = "http://lpg.ticalc.org/prj_tilp/news.html"; + description = "Transfer data between Texas Instruments graphing calculators and a computer"; + homepage = "http://lpg.ticalc.org/prj_tilp/"; + license = licenses.gpl2Plus; + platforms = with platforms; linux ++ darwin; + }; + }) { }; + + shell = pkgs.writeShellApplication { + inherit name; + text = '' + /usr/bin/env --ignore-environment /bin/sh -c ${ + pkgs.writeScript name '' + export PS1='\h (${name}) \W \$ ' + export PATH=${pkgs.lib.strings.makeBinPath [ package pkgs.busybox ]} + /bin/sh + '' + }; + ''; + }; + +in pkgs.mkShell { + inherit name package; + shellHook = "exec ${shell}/bin/${shell.name}"; +} diff --git a/.config/npmrc b/.config/npmrc index 813f01a..bf1ad15 100644 --- a/.config/npmrc +++ b/.config/npmrc @@ -1 +1,4 @@ -cache=~/.cache/npm +prefix=${XDG_DATA_HOME}/npm +cache=${XDG_CACHE_HOME}/npm +init-module=${XDG_CONFIG_HOME}/npm/config/npm-init.js +update-notifier=false diff --git a/.config/recoll/mimeview b/.config/recoll/mimeview new file mode 100644 index 0000000..66c1871 --- /dev/null +++ b/.config/recoll/mimeview @@ -0,0 +1,17 @@ +# The system-wide configuration files for recoll are located in: +# /usr/share/recoll/examples +# The default configuration files are commented, you should take a look +# at them for an explanation of what can be set (you could also take a look +# at the manual instead). +# Values set in this file will override the system-wide values for the file +# with the same name in the central directory. The syntax for setting +# values is identical. + +xallexcepts+ = text/html +xallexcepts- = +[view] +inode/directory = spacefm %f +inode/directory|parentopen = spacefm %f +application/x-fsdirectory = spacefm %f +application/pdf = zathura --page %p --find %s %f +text/html = chromium --new-window --app=file://%f#:~:text=%s diff --git a/.config/screenkey.json b/.config/screenkey.json new file mode 100644 index 0000000..0665358 --- /dev/null +++ b/.config/screenkey.json @@ -0,0 +1,26 @@ +{ + "no_systray": false, + "timeout": 2.5, + "recent_thr": 0.1, + "compr_cnt": 3, + "ignore": [], + "position": "bottom", + "persist": false, + "font_desc": "Sans Bold", + "font_size": "small", + "font_color": "#000000", + "bg_color": "#000000", + "opacity": 0, + "key_mode": "composed", + "bak_mode": "baked", + "mods_mode": "normal", + "mods_only": false, + "multiline": false, + "vis_shift": true, + "vis_space": true, + "geometry": null, + "screen": 0, + "start_disabled": false, + "mouse": false, + "button_hide_duration": 1 +} diff --git a/.config/seance/spirits b/.config/seance/spirits index 478430c..09d7282 100644 --- a/.config/seance/spirits +++ b/.config/seance/spirits @@ -1,10 +1,12 @@ anki -bin/chromium +chromium claws-mail +firefox +google-chrome keepassxc mupdf +recoll spacefm -urxvt -e vim -urxvt -hold -zim -QOwnNotes +stalonetray +vim +zathura diff --git a/.config/skippy-xd/skippy-xd.rc b/.config/skippy-xd/skippy-xd.rc index b2d867f..5fac657 100644 --- a/.config/skippy-xd/skippy-xd.rc +++ b/.config/skippy-xd/skippy-xd.rc @@ -20,6 +20,7 @@ clientDisplayModes = thumbnail icon filled none iconFillSpec = orig mid mid #00FFFF fillSpec = orig mid mid #FFFFFF background = +animationDuration = 0 [xinerama] showAll = true diff --git a/.config/stylelint/config.js b/.config/stylelint/config.js new file mode 100644 index 0000000..77db00b --- /dev/null +++ b/.config/stylelint/config.js @@ -0,0 +1,45 @@ +'use strict'; + +module.exports = { + rules: { + 'at-rule-no-unknown': true, + 'block-no-empty': true, + 'color-no-invalid-hex': true, + 'comment-no-empty': true, + 'declaration-block-no-duplicate-custom-properties': true, + 'declaration-block-no-duplicate-properties': [ + true, + { + ignore: ['consecutive-duplicates-with-different-values'], + }, + ], + 'declaration-block-no-shorthand-property-overrides': true, + 'font-family-no-duplicate-names': true, + 'font-family-no-missing-generic-family-keyword': true, + 'function-calc-no-invalid': true, + 'function-calc-no-unspaced-operator': true, + 'function-linear-gradient-no-nonstandard-direction': true, + 'keyframe-declaration-no-important': true, + 'media-feature-name-no-unknown': true, + 'named-grid-areas-no-invalid': true, + 'no-descending-specificity': true, + 'no-duplicate-at-import-rules': true, + 'no-duplicate-selectors': true, + 'no-empty-source': true, + 'no-extra-semicolons': true, + 'no-invalid-double-slash-comments': true, + 'no-invalid-position-at-import-rule': true, + 'no-irregular-whitespace': true, + 'property-no-unknown': true, + 'selector-pseudo-class-no-unknown': true, + 'selector-pseudo-element-no-unknown': true, + 'selector-type-no-unknown': [ + true, + { + ignore: ['custom-elements'], + }, + ], + 'string-no-newline': true, + 'unit-no-unknown': true, + }, +}; diff --git a/.config/swc/swc.json b/.config/swc/swc.json new file mode 100644 index 0000000..2f3bfc6 --- /dev/null +++ b/.config/swc/swc.json @@ -0,0 +1,23 @@ +{ + "jsc": { + "parser": { + "syntax": "ecmascript", + "jsx": false, + "dynamicImport": false, + "privateMethod": false, + "functionBind": false, + "exportDefaultFrom": false, + "exportNamespaceFrom": false, + "decorators": false, + "decoratorsBeforeExport": false, + "topLevelAwait": false, + "importMeta": false, + "preserveAllComments": false + }, + "target": "es3", + "loose": false, + "externalHelpers": false, + "keepClassNames": false + }, + "isModule": false +}
\ No newline at end of file diff --git a/.config/systemd/user/autocutsel.service b/.config/systemd/user/autocutsel.service index 3ebe363..495e703 100644 --- a/.config/systemd/user/autocutsel.service +++ b/.config/systemd/user/autocutsel.service @@ -7,8 +7,10 @@ Type=forking RestartSec=3 Restart=always SyslogIdentifier=autocutsel -ExecStart=/usr/bin/env autocutsel -f -s CLIPBOARD -ExecStartPre=/usr/bin/env autocutsel -f -s PRIMARY +ExecStartPre=/usr/bin/env autocutsel -fork -selection PRIMARY +ExecStart=/usr/bin/env autocutsel -fork -selection CLIPBOARD +MemoryHigh=3M +MemoryMax=5M [Install] WantedBy=default.target diff --git a/.config/systemd/user/x11vnc.service b/.config/systemd/user/x11vnc.service index 9e585c7..b055585 100644 --- a/.config/systemd/user/x11vnc.service +++ b/.config/systemd/user/x11vnc.service @@ -7,7 +7,7 @@ Type=simple RestartSec=3 Restart=always SyslogIdentifier=x11vnc -ExecStart=/usr/bin/env x11vnc -display $DISPLAY -rfbport 5901 -shared -usepw -forever -nowireframe -norepeat -noxdamage -noxrecord -ncache_cr -noxfixes -auth $XAUTHORITY +ExecStart=/usr/bin/env x11vnc -display $DISPLAY -rfbport 5901 -shared -usepw -forever -nowireframe -norepeat -noxdamage -noxrecord -ncache_cr -noxfixes -cursor arrow -auth $XAUTHORITY [Install] WantedBy=default.target diff --git a/.config/tidy.conf b/.config/tidy.conf new file mode 100644 index 0000000..c031d89 --- /dev/null +++ b/.config/tidy.conf @@ -0,0 +1,13 @@ +accessibility-check: 0 +ascii-chars: yes +clean: yes +custom-tags: blocklevel +drop-empty-elements: no +fix-style-tags: no +indent-spaces: 2 +indent: yes +markup: no +quiet: no +show-body-only: yes +vertical-space: yes +wrap: 80 diff --git a/.config/tidy/default.conf b/.config/tidy/url.conf index 67a11e7..a762628 100644 --- a/.config/tidy/default.conf +++ b/.config/tidy/url.conf @@ -2,6 +2,7 @@ accessibility-check: 0 ascii-chars: yes clean: yes custom-tags: blocklevel +drop-empty-elements: no fix-style-tags: no indent-spaces: 2 indent: yes diff --git a/.config/tmux/tmux.conf b/.config/tmux/tmux.conf index 08fb89b..73cb180 100644 --- a/.config/tmux/tmux.conf +++ b/.config/tmux/tmux.conf @@ -7,22 +7,36 @@ bind C-a send-prefix unbind C-b # reload configuration -bind r source-file ~/.config/tmux/tmux.conf \; run "printf ' # Reload tmux configuration\n' | tmux load-buffer - && tmux paste-buffer" +bind r source-file ~/.config/tmux/tmux.conf \; run "printf '# Reload tmux configuration\n' | tmux load-buffer - && tmux paste-buffer" # settings -set -g mouse on -set -g status off set -g base-index 1 +set -g history-limit 10000 set -g mode-keys vi +set -g monitor-activity on +set -g mouse on +set -g pane-base-index 1 +set -g pane-border-format "" +set -g pane-border-status top +set -g status on +set -g status-left '' +set -g status-position top +set -g status-right '' +set -g visual-activity off set -sg escape-time 1 -set -g visual-activity on -setw -g pane-base-index 1 -set -g history-limit 10000 -setw -g monitor-activity on +setw -g window-status-current-format " #I " +setw -g window-status-format " #I " -# border colours -set -g pane-border-style fg=colour0 -set -g pane-active-border-style fg=colour0 +# colours +set -g status-bg color0 +set -g pane-border-style fg=colour9 +set -g pane-active-border-style fg=colour9 +setw -g window-status-style fg=colour3 +setw -ga window-status-current-style bg=color9 + +# cycle windows +bind -n S-Right next-window # shift + --> +bind -n S-Left previous-window # shift + <-- # y and p as in vim unbind p @@ -36,6 +50,22 @@ bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel \; run "tmux bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xsel -i" bind -T root MouseDown2Pane run -b "xsel -o | tmux load-buffer - && tmux paste-buffer -s ' '" +# double click select +bind-key -n DoubleClick1Pane \ + select-pane \; \ + copy-mode -M \; \ + send-keys -X select-word \; \ + run-shell "sleep .25s" \; \ + send-keys -X copy-pipe-and-cancel "xsel -i" + +# triple click select +bind-key -n TripleClick1Pane \ + select-pane \; \ + copy-mode -M \; \ + send-keys -X select-line \; \ + run-shell "sleep .25s" \; \ + send-keys -X copy-pipe-and-cancel "xsel -i" + # split pane commands bind | split-window -h bind - split-window -v @@ -57,3 +87,7 @@ bind -n M-H resize-pane -L 5 bind -n M-J resize-pane -D 5 bind -n M-K resize-pane -U 5 bind -n M-L resize-pane -R 5 + +# session saving +set -g @resurrect-processes 'make hugo dmesg journalctl' +run-shell ~/.config/tmux/plugins/tmux-resurrect/resurrect.tmux |