diff options
Diffstat (limited to 'nix_archive/nix')
26 files changed, 2029 insertions, 0 deletions
diff --git a/nix_archive/nix/amdgpu.nix b/nix_archive/nix/amdgpu.nix new file mode 100644 index 0000000..3d28b1d --- /dev/null +++ b/nix_archive/nix/amdgpu.nix @@ -0,0 +1,51 @@ +{ pkgs, ... }: { + boot.kernelParams = [ "amdgpu.ppfeaturemask=0xffffffff" ]; + environment.sessionVariables = with pkgs; { + VDPAU_DRIVER = "radeonsi"; + LIBVA_DRIVER_NAME = "radeonsi"; + AMD_VULKAN_ICD = "RADV"; + VK_ICD_FILENAMES="${pkgsi686Linux.mesa}/share/vulkan/icd.d/radeon_icd.i686.json:${mesa}/share/vulkan/icd.d/radeon_icd.x86_64.json"; + __EGL_VENDOR_LIBRARY_FILENAMES="${pkgsi686Linux.mesa}/share/glvnd/egl_vendor.d/50_mesa.json:${mesa}/share/glvnd/egl_vendor.d/50_mesa.json"; + }; + environment.systemPackages = with pkgs; [ + radeontop + (writeShellScriptBin "proton-env-amdvlk" '' + export AMD_VULKAN_ICD="AMDVLK" + export VK_ICD_FILENAMES="${amdvlk}/share/vulkan/icd.d/amd_icd64.json" + proton-env "$@" + '') + ]; + security.wrappers = { + radeontop = { + owner = "root"; + group = "root"; + source = "${pkgs.radeontop}/bin/radeontop"; + capabilities = "cap_perfmon+ep"; + }; + }; + # https://github.com/sibradzic/amdgpu-clocks + # @TODO: Fetch and patch scripts from the git repo. + #environment.etc = { # XFX RX 6600 + # "default/amdgpu-custom-states.card0".text = '' + # OD_VDDGFX_OFFSET: + # -55mV + # FORCE_POWER_CAP: 120000000 + # FORCE_PERF_LEVEL: auto + # FORCE_POWER_PROFILE: 1 + # ''; + #}; + #environment.systemPackages = [ amdgpu-clocks pkgs.radeontop ]; + #systemd.services.amdgpu-clocks = { + # description = "Set custom amdgpu clocks & voltages"; + # after = [ "multi-user.target" "rc-local.service" "systemd-user-sessions.service" ]; + # wants = [ "modprobe@amdgpu.service" ]; + # wantedBy = [ "multi-user.target" ]; + # serviceConfig = { + # Type = "oneshot"; + # ExecStart = "${amdgpu-clocks}/bin/amdgpu-clocks"; + # ExecStop = "${amdgpu-clocks}/bin/amdgpu-clocks restore"; + # ExecReload = "${amdgpu-clocks}/bin/amdgpu-clocks"; + # RemainAfterExit = true; + # }; + #}; +} diff --git a/nix_archive/nix/audio.nix b/nix_archive/nix/audio.nix new file mode 100644 index 0000000..adac55b --- /dev/null +++ b/nix_archive/nix/audio.nix @@ -0,0 +1,113 @@ +{ pkgs, ... }: { + #hardware.pulseaudio = { + # enable = true; + # support32Bit = true; + #}; + #nixpkgs.config.pulseaudio = true; + services.pipewire = { + enable = true; + pulse.enable = true; + alsa.enable = true; + alsa.support32Bit = true; + extraConfig = { + # cat /proc/asound/card1/stream0 + pipewire = { + "92-user" = { + "context.properties" = { + "default.clock.rate" = 48000; + "default.clock.allowed-rates" = [ 44100 48000 88200 96000 176400 192000 352800 384000 ]; + "default.clock.quantum" = 512; + "default.clock.min-quantum" = 32; + "default.clock.max-quantum" = 4096; + "default.clock.quantum-limit" = 4096; + "default.video.width" = 640; + "default.video.height" = 480; + "default.video.rate.num" = 25; + "default.video.rate.denom" = 1; + }; + "context.modules" = [{ + "name" = "libpipewire-module-filter-chain"; + "args" = { + "node.description" = "Focal Elegia EQ (Convolver)"; + "media.name" = "Focal Elegia EQ (Convolver)"; + "filter.graph" = { + "nodes" = [{ + "type" = "builtin"; + "name" = "Convolver EQ"; + "label" = "convolver"; + "config" = { + "filename" = [ + "/etc/convolver/Focal_Elegia_minimum_phase_44100Hz.wav" + "/etc/convolver/Focal_Elegia_minimum_phase_48000Hz.wav" + ]; + "resample_quality" = 10; + }; + }]; + }; + "capture.props" = { + "node.name" = "eq_input.elegia_convolver_eq"; + "media.class" = "Audio/Sink"; + "audio.channels" = 2; + "audio.position" = [ "FL" "FR" ]; + }; + "playback.props" = { + "node.name" = "eq_output.elegia_convolver_eq"; + "node.passive" = true; + "audio.channels" = 2; + "audio.position" = [ "FL" "FR" ]; + }; + }; + }]; + "stream.properties" = { + "resample.quality" = 10; + "channelmix.normalize" = false; + }; + }; + }; + client = { + "92-client-user" = { + "stream.properties" = { + "resample.quality" = 10; + "channelmix.normalize" = false; + }; + }; + }; + pipewire-pulse = { + "92-pulse-user" = { + "pulse.properties" = { + "pulse.default.format" = "S32"; + "pulse.default.position" = [ "FL" "FR" ]; + }; + "stream.properties" = { + "resample.quality" = 10; + "channelmix.normalize" = false; + }; + }; + }; + }; + wireplumber = { + enable = true; + extraConfig = { + "alsa-conf" = { + "monitor.alsa.properties" = { + "alsa.use-acp" = true; + }; + "wireplumber.profiles" = { + "main" = { + "monitor.alsa.reserve-device" = "disabled"; + }; + }; + }; + }; + }; + }; + environment.systemPackages = with pkgs; [ + pipewire + pavucontrol + ]; + environment.etc = { + "convolver/Focal_Elegia_minimum_phase_44100Hz.wav".source = ../../files/audio/convolver/Focal_Elegia_minimum_phase_44100Hz.wav; + "convolver/Focal_Elegia_minimum_phase_48000Hz.wav".source = ../../files/audio/convolver/Focal_Elegia_minimum_phase_48000Hz.wav; + }; + security.rtkit.enable = true; +} diff --git a/nix_archive/nix/bluetooth.nix b/nix_archive/nix/bluetooth.nix new file mode 100644 index 0000000..18b9a42 --- /dev/null +++ b/nix_archive/nix/bluetooth.nix @@ -0,0 +1,16 @@ +{ ... }: { + hardware.bluetooth = { + enable = true; + powerOnBoot = true; + settings = { + General = { + ControllerMode = "dual"; + }; + LE = { + MinConnectionInterval = 7; + MaxConnectionInterval = 9; + ConnectionLatency = 0; + }; + }; + }; +} diff --git a/nix_archive/nix/email.nix b/nix_archive/nix/email.nix new file mode 100644 index 0000000..8320d88 --- /dev/null +++ b/nix_archive/nix/email.nix @@ -0,0 +1,158 @@ +{ config, pkgs, ... }: { + environment.systemPackages = with pkgs; [ lynx urlscan ]; + home-manager.users.andrew = let + homeDir = "${config.users.users.andrew.home}"; + in { + accounts.email.maildirBasePath = "mail"; + accounts.email.accounts."andrew" = { + address = "andrew@akon.city"; + realName = "Andrew Opalach"; + userName = "andrew@akon.city"; + maildir.path = ""; + primary = true; + passwordCommand = "${pkgs.pass}/bin/pass andrew@akon.city"; + folders.inbox = "INBOX"; + imap = { + host = "mail.akon.city"; + port = 993; + tls.enable = true; + }; + smtp = { + host = "mail.akon.city"; + port = 465; + tls.enable = true; + }; + mbsync = { + enable = true; + create = "maildir"; + }; + msmtp.enable = true; + imapnotify = { + enable = true; + boxes = [ "INBOX" ]; + onNotify = "${pkgs.notmuch}/bin/notmuch new"; + onNotifyPost = "${pkgs.libnotify}/bin/notify-send '📥 New Mail!'"; + }; + notmuch = { + enable = true; + neomutt = { + enable = true; + virtualMailboxes = [ + { name = "INBOX"; query = "folder:INBOX"; } + { name = "Sent"; query = "folder:Sent"; } + { name = "Archive"; query = "folder:Archive"; } + { name = "Drafts"; query = "folder:Drafts"; } + { name = "Trash"; query = "folder:Trash"; } + { name = "Junk"; query = "folder:Junk"; } + ]; + }; + }; + neomutt.enable = true; + }; + programs.mbsync.enable = true; + services.mbsync.enable = true; + programs.msmtp.enable = true; + services.imapnotify.enable = true; + programs.notmuch = { + enable = true; + hooks = { + preNew = "${pkgs.notmuch}/bin/notmuch search --output=files --format=text0 tag:deleted | xargs -0 rm -f; ${pkgs.isync}/bin/mbsync --all -ngfuX"; + }; + }; + programs.neomutt = { + enable = true; + vimKeys = false; + sidebar = { + enable = true; + width = 18; + shortPath = true; + }; + sort = "reverse-date"; + binds = [ + { key = "i"; action = "noop"; map = [ "index" "pager" ]; } + { key = "g"; action = "noop"; map = [ "index" "pager" ]; } + { key = "gg"; action = "first-entry"; map = [ "index" ]; } + { key = "j"; action = "next-entry"; map = [ "index" ]; } + { key = "k"; action = "previous-entry"; map = [ "index" ]; } + { key = "G"; action = "last-entry"; map = [ "index" ]; } + { key = "<Return>"; action = "view-mailcap"; map = [ "attach" ]; } + { key = "l"; action = "view-mailcap"; map = [ "attach" ]; } + { key = "<space>"; action = "noop"; map = [ "editor" ]; } + { key = "j"; action = "next-line"; map = [ "pager" ]; } + { key = "k"; action = "previous-line"; map = [ "pager" ]; } + { key = "gg"; action = "top"; map = [ "pager" ]; } + { key = "G"; action = "bottom"; map = [ "pager" ]; } + { key = "l"; action = "view-attachments"; map = [ "pager" ]; } + { key = "h"; action = "noop"; map = [ "index" ]; } + { key = "h"; action = "exit"; map = [ "pager" "attach" ]; } + { key = "\\Ck"; action = "sidebar-prev"; map = [ "index" "pager" ]; } + { key = "\\Cj"; action = "sidebar-next"; map = [ "index" "pager" ]; } + { key = "\\Co"; action = "sidebar-open"; map = [ "index" "pager" ]; } + { key = "<Tab>"; action = "complete-query"; map = [ "editor" ]; } + { key = "l"; action = "select-entry"; map = [ "browser" ]; } + { key = "gg"; action = "top-page"; map = [ "browser" ]; } + { key = "G"; action = "bottom-page"; map = [ "browser" ]; } + { key = "H"; action = "view-raw-message"; map = [ "index" "pager" ]; } + ]; + macros = let + delete-macro = "<modify-labels>+deleted<enter>"; + undelete-macro = "<modify-labels>-deleted<enter>"; + in [ + { key = "\\Cb"; action = "<pipe-message>${pkgs.urlscan}/bin/urlscan -cW<enter>"; map = [ "index" "pager" ]; } + { key = "\\Cb"; action = "<pipe-entry>${pkgs.urlscan}/bin/urlscan -cW<enter>"; map = [ "attach" "compose" ]; } + { key = "h"; action = "<change-dir><kill-line>..<enter>"; map = [ "browser" ]; } + { key = "o"; action = "<shell-escape>${pkgs.notmuch}/bin/notmuch new<enter><sync-mailbox>"; map = [ "index" ]; } + { key = "\\Cd"; action = delete-macro; map = [ "index" ]; } + { key = "\\Cu"; action = undelete-macro; map = [ "index" ]; } + ]; + extraConfig = '' + unmailboxes ${homeDir}/mail/INBOX + set mail_check_stats = yes + set delete = ask-yes + + # https://github.com/LukeSmithxyz/mutt-wizard/blob/10a16e0ee6442425e7ca1634b1d3356e6d4d04f6/share/mutt-wizard.muttrc#L14 + set rfc2047_parameters = yes + set sleep_time = 0 + set markers = no + set wait_key = no + set reverse_name + set fast_reply + set fcc_attach + set mime_forward = no + set forward_attachments = yes + set forward_format = "Fwd: %s" + set forward_quote + + set index_format="%2C (%Z) %[%D %I:%M %p] %-15.15F %s (%c, %g)" + + auto_view text/html + auto_view application/pgp-encrypted + alternative_order text/plain text/enriched text/html + + color normal blue black + color attachment brightyellow black + color hdrdefault blue black + color indicator black blue + color markers brightred black + color quoted green black + color signature blue black + color status black red + color tilde blue black + color tree red black + + color index red black ~D + color index magenta black ~T + + color header brightgreen black ^From: + color header brightblue black ^To: + color header brightblue black ^Reply-To: + color header brightblue black ^Cc: + color header brightblue black ^Subject: + + color body brightred black [\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+ + color body brightblue black (https?|ftp)://[\-\.,/%~_:?&=\#a-zA-Z0-9]+ + ''; + }; + home.file.".mailcap".source = ../../files/mailcap; + }; +} diff --git a/nix_archive/nix/gaming.nix b/nix_archive/nix/gaming.nix new file mode 100644 index 0000000..e86cd61 --- /dev/null +++ b/nix_archive/nix/gaming.nix @@ -0,0 +1,110 @@ +{ config, lib, pkgs, ... }: let + loc = config.local; + colo = loc.scheme; +in { + users.users.andrew = { + extraGroups = [ "gamemode" ]; + }; + environment.systemPackages = with pkgs; lib.lists.flatten [ + (asNeeded "gamepad-tool" ["gamepad-tool"]) + (asNeeded "sdl-jstest" ["sdl-jstest" "sdl2-jstest"]) + (asNeeded "parsec-bin" ["parsecd"]) + (asNeeded "[lutris umu-launcher]" ["lutris"]) + (asNeeded "(retroarch.withCores (cores: with cores; [ mesen bsnes ]))" ["retroarch"]) + (asNeeded "dolphin-emu" ["dolphin-emu"]) + (asNeeded "cemu" ["cemu"]) + (asNeeded "ryujinx" ["ryujinx"]) + (asNeeded "pcsx2" ["pcsx2-qt"]) + (asNeeded "(ppsspp.override { enableQt = true; })" ["ppsspp"]) + (asNeeded "rpcs3" ["rpcs3"]) + (asNeeded "prismlauncher" ["prismlauncher"]) + (asNeeded "osu-lazer-bin" ["osu!"]) + ]; + #hardware.xone.enable = true; + #hardware.opentabletdriver.enable = true; + #services.udev.packages = [ pkgs.dolphinEmu ]; + #boot.extraModulePackages = [ + # config.boot.kernelPackages.gcadapter-oc-kmod + #]; + #boot.kernelModules = [ "gcadapter_oc" ]; + programs.gamemode = { + enable = true; + settings = { + general.desiredgov = "schedutil"; + general.inhibit_screensaver = 0; + general.renice = 10; + # Can't set GPU parameters from an unprivileged container. + #gpu = { + # apply_gpu_optimisations = "accept-responsibility"; + # gpu_device = 0; + # amd_performance_level = "high"; + #}; + }; + }; + programs.gamescope = { + enable = true; + package = pkgs.gamescope; + capSysNice = true; + }; + #services.ananicy = { + # enable = true; + # #package = pkgs.ananicy-cpp; + # settings = { + # apply_nice = true; + # }; + # extraTypes = [ + # { type = "realtime"; nice = -20; } + # ]; + # extraRules = [ + # { name = "gamescope"; type = "realtime"; } + # ]; + #}; + #security.wrappers = { + # gamescope = { + # owner = "root"; + # group = "root"; + # source = "${pkgs.gamescope}/bin/gamescope"; + # capabilities = "cap_sys_nice+eip"; + # }; + #}; + home-manager.users.andrew = let + homeDir = "${config.users.users.andrew.home}"; + in { + programs.mangohud = { + enable = true; + enableSessionWide = false; + package = (pkgs.mangohud.override { nvidiaSupport = false; }); + settings = { + gamemode = true; + cpu_temp = true; + cpu_mhz = true; + vulkan_driver = true; + gpu_name = true; + gpu_power = true; + gpu_temp = true; + gpu_junction_temp = true; + gpu_core_clock = true; + gpu_voltage = true; + vram = true; + gpu_mem_temp = true; + gpu_mem_clock = true; + engine_version = true; + wine = true; + winesync = true; + display_server = true; + present_mode = true; + table_columns = 4; + cellpadding_y = -0.100; + font_size = 22; + round_corners = true; + toggle_preset = ""; + toggle_hud_position = ""; + toggle_fps_limit = ""; + toggle_logging = ""; + reload_cfg = ""; + upload_log = ""; + toggle_hud = "Shift_R+F10"; + }; + }; + }; +} diff --git a/nix_archive/nix/intel.nix b/nix_archive/nix/intel.nix new file mode 100644 index 0000000..7b69ba8 --- /dev/null +++ b/nix_archive/nix/intel.nix @@ -0,0 +1,15 @@ +{ pkgs, ... }: { + environment.sessionVariables = with pkgs; { + VDPAU_DRIVER = "va_gl"; + LIBVA_DRIVER_NAME = "iHD"; + AMD_VULKAN_ICD = "ANV"; + VK_ICD_FILENAMES="${pkgsi686Linux.mesa}/share/vulkan/icd.d/intel_icd.i686.json:${mesa}/share/vulkan/icd.d/intel_icd.x86_64.json"; + __EGL_VENDOR_LIBRARY_FILENAMES="${pkgsi686Linux.mesa}/share/glvnd/egl_vendor.d/50_mesa.json:${mesa}/share/glvnd/egl_vendor.d/50_mesa.json"; + }; + hardware.graphics = { + extraPackages = with pkgs; [ + intel-media-driver + ]; + }; + hardware.intel-gpu-tools.enable = true; +} diff --git a/nix_archive/nix/mesa_git.nix b/nix_archive/nix/mesa_git.nix new file mode 100644 index 0000000..ba2dcc1 --- /dev/null +++ b/nix_archive/nix/mesa_git.nix @@ -0,0 +1,16 @@ +{ pkgs, ... }: { + environment.systemPackages = with pkgs; [ + (writeShellScriptBin "proton-env-anv" '' + export AMD_VULKAN_ICD="ANV" + export VK_ICD_FILENAMES="${pkgsi686Linux.mesa_git}/share/vulkan/icd.d/intel_icd.i686.json:${mesa_git}/share/vulkan/icd.d/intel_icd.x86_64.json" + proton-env "$@" + '') + (writeShellScriptBin "proton-env-radv" '' + export AMD_VULKAN_ICD="RADV" + export VK_ICD_FILENAMES="${pkgsi686Linux.mesa_git}/share/vulkan/icd.d/radeon_icd.i686.json:${mesa_git}/share/vulkan/icd.d/radeon_icd.x86_64.json" + export __EGL_VENDOR_LIBRARY_FILENAMES="${pkgsi686Linux.mesa_git}/share/glvnd/egl_vendor.d/50_mesa.json:${mesa_git}/share/glvnd/egl_vendor.d/50_mesa.json" + export LD_LIBRARY_PATH="${pkgsi686Linux.mesa_git}/lib:${mesa_git}/lib:$LD_LIBRARY_PATH" + proton-env "$@" + '') + ]; +} diff --git a/nix_archive/nix/programs/bash.nix b/nix_archive/nix/programs/bash.nix new file mode 100644 index 0000000..571b4fe --- /dev/null +++ b/nix_archive/nix/programs/bash.nix @@ -0,0 +1,65 @@ +{ config, pkgs, ... }: { + users.defaultUserShell = pkgs.bashInteractive; + environment.sessionVariables = { + SHELL = "${pkgs.bashInteractive}/bin/bash"; + }; + home-manager.users.andrew = let + homeDir = "${config.users.users.andrew.home}"; + in { + programs.bash = { + enable = true; + shellAliases = { + cp = "rsync -av"; + top = "htop"; + bc = "bc -l"; + pgrep = "pgrep -f"; + make = "make -j6"; + diff = "diff -u"; + gdb = "gdb -q"; + mail = "neomutt"; + iroha = "ssh andrew@iroha"; + moyo = "ssh andrew@moyo"; + zasshi = "ssh andrew@zasshi"; + denpa = "ssh moyo -t 'ssh 192.168.122.89'"; + rod = "ssh -p 1738 rod"; + bmrg = "ssh boomerang"; + cmv-add = "$HOME/c/camu/scripts/cmv_add.sh"; + cmv-pause = "cmv-add PAUSE"; + cmv-next = "cmv-add NEXT"; + cmv-prev = "cmv-add PREV"; + cmv-shuffle = "cmv-add SHUFFLE"; + cmv-sort = "cmv-add SORT"; + cmv-reverse = "cmv-add REVERSE"; + cmv-clear = "cmv-add CLEAR"; + }; + historyControl = [ "erasedups" ]; + historySize = 10000; + historyFile = "${homeDir}/.bash_history"; + historyFileSize = 100000; + initExtra = '' + bind 'set completion-query-items 0' + bind 'set show-all-if-ambiguous on' + bind 'set show-all-if-unmodified on' + bind 'set menu-complete-display-prefix on' + bind '"\t": menu-complete' + bind '"\e[Z": menu-complete-backward' + RESET="\001\017\002" + NORMAL="\001\033[0m\002" + YELLOW="\001\033[0;33m\002" + BLUE="\001\033[0;34m\002" + MAGENTA="\001\033[0;35m\002" + CYAN="\001\033[0;36m\002" + RED="\001\033[0;31m\002" + exit_code_guy() + { + if [ $? -eq 0 ]; then + printf "(・_・) >" + else + printf "(″ãƒã‚›) >" + fi + } + export PS1="$RESET$MAGENTA\u@$CYAN\H$MAGENTA:\w\$(exit_code_guy)$NORMAL " + ''; + }; + }; +} diff --git a/nix_archive/nix/programs/docker.nix b/nix_archive/nix/programs/docker.nix new file mode 100644 index 0000000..3491a80 --- /dev/null +++ b/nix_archive/nix/programs/docker.nix @@ -0,0 +1,4 @@ +{ ... }: { + virtualisation.docker.enable = true; + users.users.andrew.extraGroups = [ "docker" ]; +} diff --git a/nix_archive/nix/programs/firefox.nix b/nix_archive/nix/programs/firefox.nix new file mode 100644 index 0000000..d278bd4 --- /dev/null +++ b/nix_archive/nix/programs/firefox.nix @@ -0,0 +1,145 @@ +{ config, pkgs, ... }: +let + colo = config.local.scheme; +in { + environment.systemPackages = with pkgs; [ + firefox-wayland + ]; + environment.sessionVariables = { + BROWSER = "firefox"; + }; + services.psd.enable = true; + home-manager.users.andrew = { + home.file."user-overrides.js" = { + target = ".mozilla/firefox/default/user-overrides.js"; + source = ../../../files/firefox/user-overrides.js; + }; + home.file."firefox-gnome-theme" = { + target = ".mozilla/firefox/default/chrome/firefox-gnome-theme"; + source = (pkgs.fetchFromGitHub { + owner = "rafaelmardojai"; + repo = "firefox-gnome-theme"; + rev = "0909cfe4a2af8d358ad13b20246a350e14c2473d"; + hash = "sha256-lizRM2pj6PHrR25yimjyFn04OS4wcdbc38DCdBVa2rk="; + }); + }; + home.file."customChrome.css" = { + target = ".mozilla/firefox/default/chrome/customChrome.css"; + source = pkgs.writeText "customChrome.css" '' + @namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); + + @media (prefers-color-scheme: ${colo.lightness}) { + :root { + /* Accent */ + --gnome-accent-bg: #${colo.color3}; + --gnome-accent: #${colo.color4}; + + --gnome-toolbar-star-button: #${colo.color4}; + + /* Window */ + --gnome-window-background: #${colo.background}; + --gnome-window-color: #${colo.foreground}; + --gnome-view-background: #${colo.background}; + --gnome-sidebar-background: #${colo.color5}; + --gnome-secondary-sidebar-background: #${colo.color4}; + + /* Card */ + --gnome-card-background: #${colo.background}; + --gnome-card-shade-color: #${colo.color4}; + + /* Menu */ + --gnome-menu-background: #${colo.background}; + + /* Header bar */ + --gnome-headerbar-background: #${colo.background}; + --gnome-headerbar-shade-color: #${colo.background}; + + /* Toolbars */ + --gnome-toolbar-icon-fill: #${colo.foreground}; + + /* Tabs */ + --gnome-tabbar-tab-hover-background: #${colo.color5}; + --gnome-tabbar-tab-active-background: #${colo.color4}; + --gnome-tabbar-tab-active-background-contrast: #${colo.color4}; + --gnome-tabbar-tab-active-hover-background: #${colo.color5}; + + --gnome-tabbar-identity-color-green: var(--gnome-palette-green-1); + --gnome-tabbar-identity-color-yellow: var(--gnome-palette-yellow-2); + --gnome-tabbar-identity-color-orange: var(--gnome-palette-orange-3); + --gnome-tabbar-identity-color-red: var(--gnome-palette-red-1); + --gnome-tabbar-identity-color-purple: var(--gnome-palette-purple-1); + + /* Text color for Firefox Logo in new private tab */ + --gnome-private-wordmark: #${colo.background}; + /* New private tab background */ + --gnome-private-in-content-page-background: #${colo.background}; + /* Private browsing info box */ + --gnome-private-text-primary-color: #${colo.background}; + } + + /* Backdrop colors */ + :root:-moz-window-inactive { + --gnome-tabbar-tab-hover-background: #${colo.background}; + --gnome-tabbar-tab-active-background: #${colo.background}; + } + + /* Private colors */ + :root[privatebrowsingmode="temporary"] { + --gnome-accent-fg: #${colo.color4}; + /* Headerbar */ + --gnome-headerbar-background: #${colo.color5} !important; + /* Tabs */ + --gnome-tabbar-tab-hover-background: #${colo.color5}; + --gnome-tabbar-tab-active-background: #${colo.background}; + --gnome-tabbar-tab-active-background-contrast: #${colo.background}; + --gnome-tabbar-tab-active-hover-background: #${colo.color5}; + } + + /* Private and backdrop colors */ + :root[privatebrowsingmode="temporary"]:-moz-window-inactive { + --gnome-headerbar-background: #${colo.color5} !important; + --gnome-tabbar-tab-hover-background: #${colo.color5}; + --gnome-tabbar-tab-active-background: #${colo.color5}; + } + } + ''; + }; + home.sessionVariables = { + MOZ_WEBRENDER = "1"; + MOZ_USE_XINPUT2 = "1"; + MOZ_ENABLE_WAYLAND = "1"; + }; + programs.firefox = { + enable = true; + profiles.default = { + extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [ + ublock-origin + skip-redirect + cookies-txt + youtube-recommended-videos + istilldontcareaboutcookies + hls-stream-detector + old-reddit-redirect + tampermonkey + enhanced-h264ify + ]; + userChrome = '' + @import "firefox-gnome-theme/userChrome.css"; + @import "customChrome.css"; + #urlbar .search-one-offs { + display: none !important; + } + #tabbrowser-tabpanels{ + background-color: #${colo.background} !important; + } + ''; + userContent = '' + @import "firefox-gnome-theme/userContent.css"; + @-moz-document url("about:home"),url("about:blank"),url("about:newtab"),url("about:privatebrowsing") { + body{ background-color: #${colo.background} !important } + } + ''; + }; + }; + }; +} diff --git a/nix_archive/nix/programs/foot.nix b/nix_archive/nix/programs/foot.nix new file mode 100644 index 0000000..5c85ce7 --- /dev/null +++ b/nix_archive/nix/programs/foot.nix @@ -0,0 +1,51 @@ +{ config, pkgs, ... }: +let + loc = config.local; + colo = loc.scheme; +in { + environment.sessionVariables = { + TERMINAL = "${pkgs.foot}/bin/footclient"; + }; + home-manager.users.andrew = { + programs.foot = { + enable = true; + server.enable = true; + settings = { + main = { + font = "${s.font.name}:size=${toString s.font.size}"; + }; + colors = { + foreground = "${colo.foreground}"; + background = "${colo.background}"; + regular0 = "${colo.color0}"; + regular1 = "${colo.color1}"; + regular2 = "${colo.color2}"; + regular3 = "${colo.color3}"; + regular4 = "${colo.color4}"; + regular5 = "${colo.color5}"; + regular6 = "${colo.color6}"; + regular7 = "${colo.color7}"; + bright0 = "${colo.color8}"; + bright1 = "${colo.color9}"; + bright2 = "${colo.color10}"; + bright3 = "${colo.color11}"; + bright4 = "${colo.color12}"; + bright5 = "${colo.color13}"; + bright6 = "${colo.color14}"; + bright7 = "${colo.color15}"; + alpha = "1.0"; + }; + }; + }; + wayland.windowManager.sway = { + config = rec { + terminal = "${pkgs.foot}/bin/footclient"; + keybindings = let + mod1 = "Mod1"; + in { + "${mod1}+Return" = "exec ${terminal}"; + }; + }; + }; + }; +} diff --git a/nix_archive/nix/programs/kdeconnect.nix b/nix_archive/nix/programs/kdeconnect.nix new file mode 100644 index 0000000..8d8b366 --- /dev/null +++ b/nix_archive/nix/programs/kdeconnect.nix @@ -0,0 +1,12 @@ +{ ... }: { + networking.firewall = { + allowedTCPPortRanges = [ { from = 1714; to = 1764; } ]; + allowedUDPPortRanges = [ { from = 1714; to = 1764; } ]; + }; + home-manager.users.andrew = { + services.kdeconnect = { + enable = true; + indicator = false; + }; + }; +} diff --git a/nix_archive/nix/programs/kitty.nix b/nix_archive/nix/programs/kitty.nix new file mode 100644 index 0000000..86ad720 --- /dev/null +++ b/nix_archive/nix/programs/kitty.nix @@ -0,0 +1,112 @@ +{ config, lib, pkgs, ... }: +let + loc = config.local; + colo = loc.scheme; +in { + environment.sessionVariables = { + TERMINAL = "${pkgs.kitty}/bin/kitty -1"; + }; + home-manager.users.andrew = { + programs.kitty = { + enable = true; + font = { + name = loc.font.name; + size = loc.font.size; + }; + shellIntegration = { + mode = "enabled"; + enableBashIntegration = true; + }; + extraConfig = '' + shell ${pkgs.bashInteractive}/bin/bash --login + update_check_interval 0 + confirm_os_window_close 0 + sync_to_monitor no + allow_remote_control yes + linux_display_server wayland + remember_window_size no + initial_window_width 720 + initial_window_height 480 + resize_debounce_time 0.025 0.5 + window_padding_width 1 + placement_strategy top-left + scrollback_lines 3000 + paste_actions confirm,confirm-if-large + disable_ligatures always + modify_font baseline ${toString loc.font.baseline} + modify_font cell_height ${toString loc.font.cell-height-offset} + cursor_shape block + #cursor_blink_interval -1 linear ease-out + #cursor_stop_blinking_after 20.0 + #cursor_trail 2 + #cursor_trail_decay 0.075 0.425 + #cursor_trail_start_threshold 3 + cursor #${colo.foreground} + #cursor none + cursor_text_color background + foreground #${colo.foreground} + background #${colo.background} + color0 #${colo.color0} + color1 #${colo.color1} + color2 #${colo.color2} + color3 #${colo.color3} + color4 #${colo.color4} + color5 #${colo.color5} + color6 #${colo.color6} + color7 #${colo.color7} + color8 #${colo.color8} + color9 #${colo.color9} + color10 #${colo.color10} + color11 #${colo.color11} + color12 #${colo.color12} + color13 #${colo.color13} + color14 #${colo.color14} + color15 #${colo.color15} + selection_foreground #${colo.background} + selection_background #${colo.color6} + mark1_foreground #${colo.background} + mark1_background #${colo.color5} + mark2_foreground #${colo.background} + mark2_background #${colo.color6} + mark3_foreground #${colo.background} + mark3_background #${colo.color4} + background_opacity ${toString colo.alpha} + active_border_color #${colo.color4} + bell_border_color #${colo.color1} + inactive_border_color #${colo.color3} + active_tab_foreground #${colo.background} + active_tab_background #${colo.color5} + active_tab_font_style bold-italic + inactive_tab_foreground #${colo.background} + inactive_tab_background #${colo.color4} + url_color #${colo.color5} + enabled_layouts splits,stack + ''; + }; + home.file.".config/kitty/quick-access-terminal.conf".text = '' + lines 18 + background_opacity 0.925 + output_name ${loc.monitors.monitor1} + kitty_override startup_session=quick-access-session.conf + kitty_override placement_strategy=bottom-right + kitty_override window_padding_width=0 12 8 0 + ''; + home.file.".config/kitty/quick-access-session.conf".text = '' + layout splits + launch --var window=main + launch --location=vsplit --bias=17.1 /home/andrew/dl/tmp/clock/a.out + focus_matching_window var:window=first + ''; + wayland.windowManager.sway = { + config = rec { + terminal = "${pkgs.kitty}/bin/kitty -1"; + keybindings = let + mod1 = "Mod1"; + in { + "${mod1}+Return" = "exec ${terminal}"; + "${mod1}+backslash" = "exec ${pkgs.kitty}/bin/kitten quick-access-terminal"; + }; + }; + }; + }; +} diff --git a/nix_archive/nix/programs/nvim.nix b/nix_archive/nix/programs/nvim.nix new file mode 100644 index 0000000..3cdf12e --- /dev/null +++ b/nix_archive/nix/programs/nvim.nix @@ -0,0 +1,235 @@ +{ config, pkgs, ... }: +let + colo = config.local.scheme; + local-nvim = pkgs.vimUtils.buildVimPlugin { + pname = "local"; + version = "0.2"; + src = ../../files/nvim/local; + }; + wal = pkgs.vimUtils.buildVimPlugin { + # https://github.com/neovim/neovim/blob/ec8922978eb14fe62671628bb25215743712eac0/src/nvim/highlight_group.c#L432 + # ...neovim-unwrapped-0.10.4/share/nvim/runtime/syntax/c.vim + pname = "wal"; + version = "3.3"; + src = pkgs.writeTextDir "colors/wal-gui.vim" '' + let g:colors_name = "wal-gui" + + set background=${colo.lightness} + set pumblend=10 + + " Lag Fix + hi! link CurSearch Search + + " Plugins + hi MiniStarterInactive guifg=#${colo.foreground} + hi MiniStarterQuery guifg=#${colo.color5} gui=bold + hi MiniStarterItemPrefix guifg=#${colo.color4} + + " https://github.com/NeogitOrg/neogit/blob/nightly/lua/neogit/lib/hl.lua + hi link NeogitDiffContext Normal + hi link NeogitDiffContextHighlight Normal + hi link NeogitDiffContextCursor Normal + hi link NeogitHunkHeader NeogitHunkHeaderHighlight + + " Custom + hi ExtraWhitespace guibg=#${colo.color4} + + hi Normal guifg=#${colo.foreground} guibg=#${colo.background} + + " Necessary even without tree-sitter. + hi @variable guifg=#${colo.foreground} + + " UI + hi Added guifg=#${colo.color2} + hi Changed guifg=#${colo.color3} + hi ColorColumn guibg=#${colo.color6} + hi Conceal guifg=#${colo.color5} + hi CurSearch guifg=#${colo.background} guibg=#${colo.color4} + hi CursorColumn guibg=#${colo.background} + hi CursorLine guibg=#${colo.color5} + hi DiffAdd guifg=#${colo.color2} guibg=#${colo.background} + hi DiffChange guifg=#${colo.color3} guibg=#${colo.background} + hi DiffDelete guifg=#${colo.color1} guibg=#${colo.background} gui=bold + hi DiffText guifg=#${colo.color4} guibg=#${colo.background} + hi Directory guifg=#${colo.color2} + hi ErrorMsg guifg=#${colo.color1} + hi FloatShadow guibg=#${colo.color6} blend=80 + hi FloatShadowThrough guibg=#${colo.color6} blend=100 + hi Folded guifg=#${colo.color5} guibg=#${colo.background} + hi LineNr guifg=#${colo.color2} + hi MatchParen guifg=#${colo.color2} guibg=#${colo.background} gui=bold + hi ModeMsg guifg=#${colo.color4} + hi MoreMsg guifg=#${colo.color2} + hi NonText guifg=#${colo.color6} + hi NormalFloat guibg=#${colo.color5} + hi Pmenu guibg=#${colo.color5} + hi PmenuThumb guibg=#${colo.color4} + hi PmenuSel guibg=#${colo.color5} " Font color. + hi PmenuSbar guibg=#${colo.color5} + hi Question guifg=#${colo.color3} + hi QuickFixLine guifg=#${colo.color3} + hi RedrawDebugClear guibg=#${colo.color2} + hi RedrawDebugComposed guibg=#${colo.background} + hi RedrawDebugRecompose guibg=#${colo.color3} + hi Removed guifg=#${colo.color1} + hi Search guifg=#${colo.foreground} guibg=#${colo.color1} + hi SignColumn guifg=#${colo.color6} + hi SpecialKey guifg=#${colo.color6} + hi SpellBad guisp=#${colo.color1} gui=undercurl + hi SpellCap guisp=#${colo.color4} gui=undercurl + hi SpellLocal guisp=#${colo.color4} gui=undercurl + hi SpellRare guisp=#${colo.color3} gui=undercurl + hi StatusLine guifg=#${colo.background} guibg=#${colo.color5} + hi StatusLineNC guifg=#${colo.background} guibg=#${colo.color4} + hi Title guifg=#${colo.foreground} gui=bold + hi Visual guibg=#${colo.color3} + hi WarningMsg guifg=#${colo.color3} + hi WinBar guifg=#${colo.color5} guibg=#${colo.background} gui=bold + hi WinBarNC guifg=#${colo.color5} guibg=#${colo.background} + + " // Syntax + " "default link Character Constant", + " "default link Number Constant", + " "default link Boolean Constant", + " "default link Float Number", + " "default link Conditional Statement", + " "default link Repeat Statement", + " "default link Label Statement", + " "default link Keyword Statement", + " "default link Exception Statement", + " "default link Include PreProc", + " "default link Define PreProc", + " "default link Macro PreProc", + " "default link PreCondit PreProc", + " "default link StorageClass Type", + " "default link Structure Type", + " "default link Typedef Type", + " "default link Tag Special", + " "default link SpecialChar Special", + " "default link SpecialComment Special", + " "default link Debug Special", + " "default link Ignore Normal", + + " Syntax Overrides + hi Structure guifg=#${colo.color4} gui=bold + hi StorageClass guifg=#${colo.color4} gui=bold + hi Number guifg=#${colo.foreground} + " ----- + hi link Boolean Number + hi link Character String + hi link SpecialChar Character + + " Syntax + hi Constant guifg=#${colo.foreground} + hi Operator guifg=#${colo.foreground} + hi PreProc guifg=#${colo.foreground} + hi Type guifg=#${colo.foreground} gui=bold + hi Delimiter guifg=#${colo.foreground} + + hi Comment guifg=#${colo.color2} + hi String guifg=#${colo.color2} + hi Identifier guifg=#${colo.foreground} + hi Function guifg=#${colo.foreground} + hi Statement guifg=#${colo.foreground} gui=bold + hi Special guifg=#${colo.color6} + hi Error guifg=#${colo.color1} guibg=#${colo.foreground} " Used for Neogit delete. + hi Todo guifg=#${colo.foreground} gui=bold + + " Diagnostic + hi DiagnosticError guifg=#${colo.color1} + hi DiagnosticWarn guifg=#${colo.color3} + hi DiagnosticInfo guifg=#${colo.color2} + hi DiagnosticHint guifg=#${colo.foreground} + hi DiagnosticOk guifg=#${colo.color4} + hi DiagnosticUnderlineError guisp=#${colo.color1} gui=underline + hi DiagnosticUnderlineWarn guisp=#${colo.color3} gui=underline + hi DiagnosticUnderlineInfo guisp=#${colo.color2} gui=underline + hi DiagnosticUnderlineHint guisp=#${colo.foreground} gui=underline + hi DiagnosticUnderlineOk guisp=#${colo.color4} gui=underline + hi DiagnosticDeprecated guisp=#${colo.color3} gui=strikethrough + ''; + }; +in { + environment.sessionVariables = { + EDITOR = "nvim"; + }; + home-manager.users.andrew = { + programs.neovim = let + s = config.local.starter; + in { + enable = true; + viAlias = true; + vimAlias = true; + extraConfig = '' + lua << EOF + -- Simpler mini.starter builtin actions. + local builtin_actions_edit = function() + return { + { name = 'Edit new buffer', action = 'enew', section = 'Actions' }, + { name = 'Quit', action = 'qall', section = 'Actions' } + } + end + local starter = require('mini.starter') + starter.setup({ + items = { + starter.sections.sessions(6, true), + starter.sections.recent_files(7, false, false), + builtin_actions_edit() + }, + content_hooks = { + starter.gen_hook.adding_bullet(), + starter.gen_hook.aligning('center', 'center') + }, + top_padding = ${toString s.top_padding}, + header = '${s.header}', + footer = '${s.footer}', + footer_offset = ${toString s.footer-offset}, + picture = { + path = '${s.picture}', + kitty = os.getenv('TERM') == 'xterm-kitty', + width = ${toString s.width}, + position = '${s.position}', + padding = { + top = ${toString s.padding.top}, + left = ${toString s.padding.left}, + text = ${toString s.padding.text} + } + } + }) + EOF + '' + builtins.readFile(../../files/nvim/init.vim); + extraPackages = with pkgs; [ + fzf + chafa + ripgrep + xxd + ]; + #(pkgs.vimUtils.buildVimPlugin { + # pname = ""; + # version = ""; + # src = pkgs.fetchFromGitHub { + # owner = ""; + # repo = ""; + # rev = ""; + # hash = ""; + # }; + # meta.homepage = ""; + #}) + plugins = with pkgs.vimPlugins; [ + local-nvim + wal + undotree + fzfWrapper + fzf-vim + vim-gitbranch + vim-signify + nvim-lspconfig + inc-rename-nvim + mini-nvim + neogit + plenary-nvim + ccc-nvim + ]; + }; + }; +} diff --git a/nix_archive/nix/programs/obs.nix b/nix_archive/nix/programs/obs.nix new file mode 100644 index 0000000..59dca35 --- /dev/null +++ b/nix_archive/nix/programs/obs.nix @@ -0,0 +1,11 @@ +{ config, pkgs, ... }: { + environment.systemPackages = with pkgs; [ + obs-studio + ]; + home-manager.users.andrew = let + homeDir = "${config.users.users.andrew.home}"; + in { + home.file.".config/obs-studio/plugins/wlrobs/bin/64bit/libwlrobs.so".source = "${pkgs.obs-studio-plugins.wlrobs}/lib/obs-plugins/libwlrobs.so"; + home.file.".config/obs-studio/plugins/wlrobs/bin/64bit/obs-vaapi.so".source = "${pkgs.obs-studio-plugins.obs-vaapi}/lib/obs-plugins/obs-vaapi.so"; + }; +} diff --git a/nix_archive/nix/programs/sunshine.nix b/nix_archive/nix/programs/sunshine.nix new file mode 100644 index 0000000..dff4d97 --- /dev/null +++ b/nix_archive/nix/programs/sunshine.nix @@ -0,0 +1,29 @@ +{ pkgs, ... }: { + #environment.systemPackages = with pkgs; [ sunshine ]; + services.sunshine = { + enable = true; + capSysAdmin = true; + settings = { + sunshine_name = "Iroha"; + }; + applications = { + env = { + PATH = "$(PATH)"; + }; + apps = [ + { + name = "Steam Gamescope"; + cmd = "gamescope -w 960 -W 960 -h 544 -H 544 -r 60 -O DP-1 -e -- steam steam://open/bigpicture"; + } + ]; + }; + }; + #security.wrappers = { + # sunshine = { + # owner = "root"; + # group = "root"; + # source = "${pkgs.sunshine}/bin/sunshine"; + # capabilities = "cap_sys_admin+p"; + # }; + #}; +} diff --git a/nix_archive/nix/programs/sway.nix b/nix_archive/nix/programs/sway.nix new file mode 100644 index 0000000..b5dcb5f --- /dev/null +++ b/nix_archive/nix/programs/sway.nix @@ -0,0 +1,360 @@ +{ config, lib, pkgs, ... }: +let + loc = config.local; + colo = loc.scheme; +in { + services.xserver.videoDrivers = [ "modesetting" ]; + programs.sway = { + enable = true; + package = pkgs.swayfx; + extraPackages = with pkgs; [ + libinput + swaybg + swayidle + wl-clipboard + libnotify + bemenu + slurp + grim + wf-recorder + wlsunset + xorg.xprop + xorg.xset + xorg.xrdb + xorg.xrandr + ]; + }; + local.scripts.imports = [ + "dbus-sway-environment" + "dmenu-path" + "dmenu-path0" + "dmenu-emoji" + "wlsunset-toggle" + "screenshot" + ]; + services.dbus.enable = true; + security.polkit.enable = true; + programs.dconf.enable = true; + xdg.portal = { + enable = true; + wlr.enable = true; + extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; + }; + xdg.icons.enable = true; + #services.getty.autologinUser = "andrew"; + #services.greetd = { + # enable = false; + # settings = { + # vt=3; + # default_session = { + # command = "run-sway"; + # user = "root"; + # }; + # }; + #}; + qt = { + enable = true; + platformTheme = "qt5ct"; # Also selects qt6ct. + style = "adwaita"; + }; + home-manager.users.andrew = { + home.sessionVariables = { + MAIN_MONITOR="${loc.monitors.monitor1}"; + XDG_CURRENT_DESKTOP = "sway"; + MOZ_ENABLE_WAYLAND = "1"; + SDL_VIDEODRIVER = "wayland"; + GDK_BACKEND = "wayland,x11"; + QT_QPA_PLATFORM = "wayland;xcb"; + QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; + _JAVA_AWT_WM_NONREPARENTING = "1"; + }; + xresources.properties = { + "*background" = "#${colo.background}"; + "*foreground" = "#${colo.foreground}"; + "*color0" = "#${colo.color0}"; + "*color1" = "#${colo.color1}"; + "*color2" = "#${colo.color2}"; + "*color3" = "#${colo.color3}"; + "*color4" = "#${colo.color4}"; + "*color5" = "#${colo.color5}"; + "*color6" = "#${colo.color6}"; + "*color7" = "#${colo.color7}"; + "*color8" = "#${colo.color8}"; + "*color9" = "#${colo.color9}"; + "*color10" = "#${colo.color10}"; + "*color11" = "#${colo.color11}"; + "*color12" = "#${colo.color12}"; + "*color13" = "#${colo.color13}"; + "*color14" = "#${colo.color14}"; + "*color15" = "#${colo.color15}"; + }; + gtk = let + # *_shade_color is adjusted from black by default. + extraCss3 = '' + @define-color shade_color #${colo.background}; + @define-color scrollbar_outline_color #${colo.foreground}; + @define-color window_bg_color #${colo.background}; + @define-color window_fg_color #${colo.foreground}; + @define-color view_bg_color #${colo.background}; + @define-color view_fg_color #${colo.foreground}; + @define-color accent_bg_color #${colo.color4}; + @define-color accent_fg_color #${colo.background}; + @define-color accent_color #${colo.color4}; + @define-color headerbar_bg_color #${colo.background}; + @define-color headerbar_fg_color #${colo.foreground}; + @define-color headerbar_backdrop_color #${colo.background}; + @define-color headerbar_border_color #${colo.color6}; + @define-color secondary_headerbar_bg_color #${colo.background}; + @define-color secondary_headerbar_fg_color #${colo.foreground}; + @define-color secondary_headerbar_backdrop_color #${colo.background}; + @define-color secondary_headerbar_border_color #${colo.color5}; + @define-color thumbnail_bg_color #${colo.background}; + @define-color thumbnail_fg_color #${colo.foreground}; + @define-color card_bg_color #${colo.background}; + @define-color card_fg_color #${colo.foreground}; + @define-color popover_bg_color #${colo.background}; + @define-color popover_fg_color #${colo.foreground}; + @define-color dialog_bg_color #${colo.background}; + @define-color dialog_fg_color #${colo.foreground}; + @define-color panel_bg_color #${colo.background}; + @define-color panel_fg_color #${colo.foreground}; + @define-color sidebar_bg_color #${colo.background}; + @define-color sidebar_fg_color #${colo.foreground}; + @define-color sidebar_backdrop_color #${colo.background}; + @define-color sidebar_border_color #${colo.color5}; + @define-color secondary_sidebar_bg_color #${colo.background}; + @define-color secondary_sidebar_fg_color #${colo.foreground}; + @define-color secondary_sidebar_backdrop_color #${colo.background}; + @define-color secondary_sidebar_border_color #${colo.color6}; + @define-color warning_bg_color #${colo.color4}; + @define-color warning_fg_color #${colo.foreground}; + @define-color warning_color #${colo.color4}; + @define-color error_bg_color #${colo.color3}; + @define-color error_fg_color #${colo.foreground}; + @define-color error_color #${colo.color3}; + @define-color success_bg_color #${colo.color2}; + @define-color success_fg_color #${colo.background}; + @define-color success_color #${colo.color2}; + @define-color destructive_bg_color #${colo.color5}; + @define-color destructive_fg_color #${colo.background}; + @define-color destructive_color #${colo.color5}; + ''; + extraCss4 = '' + ''; + in { + enable = true; + theme = { + name = "adw-gtk3" + (if colo.lightness == "light" then "" else "-dark"); + package = pkgs.adw-gtk3; + }; + cursorTheme = { + name = "WhiteSur-cursors"; + }; + #iconTheme = { + # name = "suru"; + # package = pkgs.ubuntu-themes; + #}; + gtk3.extraCss = extraCss3; + gtk4.extraCss = extraCss3; + }; + home.pointerCursor = { + name = "WhiteSur-cursors"; + package = pkgs.whitesur-cursors; + }; + wayland.windowManager.sway = { + enable = true; + systemd.enable = true; + xwayland = true; + wrapperFeatures = { base = true; gtk = true; }; + swaynag = { + enable = true; + settings = { + "<config>" = { + edge = "top"; + font = "${loc.ui-font.name} ${toString loc.ui-font.size}"; + background = "${colo.background}"; + border = "${colo.background}"; + text = "${colo.foreground}"; + button-text = "${colo.foreground}"; + button-background = "${colo.color6}"; + message-padding = 5; + border-bottom-size = 1; + details-border-size = 1; + button-border-size = 1; + button-gap = 3; + button-dismiss-gap = 7; + button-padding = 3; + button-margin-right = 5; + }; + }; + }; + config = rec { + input = { + "type:keyboard" = { + repeat_rate = "45"; + repeat_delay = "220"; + xkb_options = "ctrl:nocaps"; + }; + "type:touchpad" = { + natural_scroll = "enabled"; + }; + "1189:32769:BenQ_ZOWIE_BenQ_ZOWIE_Gaming_Mouse" = { + accel_profile = "flat"; + pointer_accel = "-0.675"; + scroll_factor = "1.0"; + }; + "1241:44368:USB_Gaming_Mouse" = { # Finalmouse Ultralight 2 + accel_profile = "flat"; + scroll_factor = "0.75"; + }; + "1133:45104:Logi_POP_Mouse" = { + accel_profile = "flat"; + scroll_factor = "0.75"; + }; + "1133:50504:Logitech_USB_Receiver_Mouse" = { + accel_profile = "flat"; + scroll_factor = "0.75"; + }; + "2362:9488:PixArt_USB_Optical_Mouse" = { + accel_profile = "flat"; + scroll_factor = "0.75"; + }; + "1390:268:ELECOM_TrackBall_Mouse_HUGE_TrackBall" = { + accel_profile = "flat"; + scroll_factor = "0.25"; + scroll_method = "on_button_down"; + scroll_button = "276"; + }; + "1386:890:Wacom_One_by_Wacom_S_Pen" = { + map_to_output = loc.monitors.monitor1; + left_handed = "enabled"; + }; + }; + modifier = "Mod1"; + menu = "dmenu-path | bemenu-colored | ${pkgs.findutils}/bin/xargs swaymsg exec --"; + focus.wrapping = "yes"; + keybindings = let + mod1 = "Mod1"; + in { + "button4" = "nop"; + "button5" = "nop"; + "${mod1}+d" = "exec ${menu}"; + "${mod1}+e" = "exec dmenu-emoji | bemenu-colored | awk '{split($0,a);printf \"%s\", a[1];}' | wl-copy"; + "${mod1}+q" = "exec screenshot qrcode"; + "${mod1}+c" = "exec screenshot color"; + "${mod1}+Shift+q" = "kill"; + "${mod1}+h" = "focus left"; + "${mod1}+j" = "focus down"; + "${mod1}+k" = "focus up"; + "${mod1}+l" = "focus right"; + "${mod1}+Shift+h" = "move left"; + "${mod1}+Shift+j" = "move down"; + "${mod1}+Shift+k" = "move up"; + "${mod1}+Shift+l" = "move right"; + "${mod1}+b" = "split h"; + "${mod1}+v" = "split v"; + "${mod1}+f" = "fullscreen toggle"; + "${mod1}+space" = "floating toggle"; + "${mod1}+r" = "mode \"resize\""; + "${mod1}+Shift+c" = "reload"; + "${mod1}+Shift+e" = "exec swaynag -m 'Do you really want to exit?' -B 'Yes' 'swaymsg exit'"; + "Print" = "exec screenshot main"; + "Shift+Print" = "exec screenshot full"; + "${mod1}+Shift+s" = "exec screenshot"; + "${mod1}+s" = "exec wlsunset-toggle"; + "${mod1}+Shift+t" = "exec swaymsg -- input 1386:890:Wacom_One_by_Wacom_S_Pen events disabled"; + }; + modes = { + resize = { + Escape = "mode default"; + h = "resize shrink width 1 px"; + j = "resize grow height 1 px"; + k = "resize shrink height 1 px"; + l = "resize grow width 1 px"; + }; + }; + fonts = { + names = [ loc.ui-font.name ]; + style = "Regular"; + size = loc.ui-font.size + 0.0; + }; + bars = [ ]; + window = { + border = 2; + titlebar = false; + commands = [ + { command = "move to scratchpad"; criteria.app_id = "kitty-server"; } + { command = "allow_tearing yes"; criteria.app_id = "kitty"; } + { command = "inhibit_idle fullscreen; floating enable"; criteria.app_id = "cmv"; } + { command = "floating enable"; criteria.class = "cmv.exe"; } + { command = "floating enable"; criteria.app_id = "mauri"; } + { command = "inhibit_idle fullscreen"; criteria.title = "Parsec"; } + { command = "inhibit_idle fullscreen"; criteria.class = "streaming_client"; } + { command = "inhibit_idle fullscreen; allow_tearing yes"; criteria.class = "steam_app_.*"; } + { command = "inhibit_idle fullscreen; allow_tearing yes; floating enable"; criteria.app_id = "gamescope"; } + { command = "inhibit_idle fullscreen; allow_tearing yes"; criteria.class = ".gamescope-wrapped"; } + { command = "inhibit_idle fullscreen; allow_tearing yes"; criteria.app_id = "osu!"; } + { command = "inhibit_idle fullscreen; allow_tearing yes"; criteria.class = "cs2"; } + { command = "inhibit_idle fullscreen; allow_tearing yes"; criteria.class = "Minecraft*"; } + { command = "inhibit_idle fullscreen; allow_tearing yes"; criteria.title = "Overwatch"; } + { command = "inhibit_idle fullscreen"; criteria.class = "Ryujinx"; } + { command = "inhibit_idle fullscreen"; criteria.app_id = "org.yuzu_emu.yuzu"; } + { command = "inhibit_idle fullscreen"; criteria.app_id = "info.cemu.Cemu"; } + { command = "inhibit_idle fullscreen"; criteria.class = "dolphin-emu"; } + { command = "inhibit_idle fullscreen"; criteria.class = "AppRun"; } # Ishiiruka-Dolphin + { command = "inhibit_idle fullscreen"; criteria.class = "SuperMeatBoy"; } + ]; + }; + colors = let + bg = "#${colo.background}"; + fg = "#${colo.foreground}"; + ch = "#${colo.color4}"; + urgent = "#${colo.color1}"; + in { + background = bg; + focused = { background = bg; border = ch; childBorder = ch; indicator = ch; text = fg; }; + focusedInactive = { background = bg; border = ch; childBorder = ch; indicator = ch; text = fg; }; + unfocused = { background = bg; border = bg; childBorder = bg; indicator = bg; text = fg; }; + urgent = { background = urgent; border = urgent; childBorder = urgent; indicator = urgent; text = fg; }; + placeholder = { background = bg; border = bg; childBorder = bg; indicator = bg; text = fg; }; + }; + startup = let + gnome-schema = "org.gnome.desktop.interface"; + in [ + { command = "dconf write /org/gnome/desktop/interface/color-scheme \"'prefer-${colo.lightness}'\""; always = true; } + { command = "dbus-sway-environment"; } + { command = "swaymsg 'seat * hide_cursor 4000'"; always = true; } + { command = "kitty -1 --class=\"kitty-server\""; } + { command = "wlsunset-toggle"; } + ]; + }; +# extraConfig = '' +# blur enable +# blur_passes 4 +# blur_radius 2 +# blur_contrast 1.5 +# blur_saturation 1.1 +# ''; + }; + services.swayidle = { + enable = true; + timeouts = [ + { + timeout = 300; + command = "${pkgs.sway}/bin/swaymsg \"output * dpms off\""; + resumeCommand = "${pkgs.sway}/bin/swaymsg \"output * dpms on\""; + } + ]; + }; + services.mako = { + enable = true; + settings = { + default-timeout = 14000; + font = "${loc.font.name} ${toString loc.ui-font.size}"; + background-color = "#${colo.background}"; + text-color = "#${colo.foreground}"; + border-color = "#${colo.color6}"; + }; + }; + }; +} diff --git a/nix_archive/nix/programs/waydroid.nix b/nix_archive/nix/programs/waydroid.nix new file mode 100644 index 0000000..af0c207 --- /dev/null +++ b/nix_archive/nix/programs/waydroid.nix @@ -0,0 +1,3 @@ +{ ... }: { + virtualisation.waydroid.enable = true; +} diff --git a/nix_archive/nix/programs/zsh.nix b/nix_archive/nix/programs/zsh.nix new file mode 100644 index 0000000..6071429 --- /dev/null +++ b/nix_archive/nix/programs/zsh.nix @@ -0,0 +1,76 @@ +{ config, pkgs, ... }: { + programs.zsh.enable = true; + + environment.shells = [ pkgs.zsh ]; + environment.pathsToLink = [ "/share/zsh" ]; + users.defaultUserShell = pkgs.zsh; + environment.sessionVariables = { + SHELL = "${pkgs.zsh}/bin/zsh"; + }; + + home-manager.users.andrew = let + homeDir = "${config.users.users.andrew.home}"; + in { + programs.zsh = { + enable = true; + shellAliases = { + sudo = "nocorrect sudo "; + xargs = "nocorrect xargs "; + cp = "rsync -avz"; + top = "htop"; + bc = "bc -l"; + pgrep = "pgrep -f"; + make = "make -j6"; + diff = "diff -u"; + gdb = "gdb -q"; + mail = "neomutt"; + iroha = "ssh andrew@iroha"; + moyo = "ssh andrew@moyo"; + zasshi = "ssh andrew@zasshi"; + denpa = "ssh moyo -t 'ssh 192.168.122.89'"; + rod = "ssh -p 1738 rod"; + bmrg = "ssh boomerang"; + cmv = "$HOME/c/camu/scripts/cmv.sh"; + cmv-add = "$HOME/c/camu/scripts/cmv_add.sh"; + cmv-pause = "cmv-add PAUSE"; + cmv-next = "cmv-add NEXT"; + cmv-prev = "cmv-add PREV"; + cmv-shuffle = "cmv-add SHUFFLE"; + cmv-sort = "cmv-add SORT"; + cmv-reverse = "cmv-add REVERSE"; + cmv-clear = "cmv-add CLEAR"; + }; + defaultKeymap = "emacs"; + history = { + save = 10000; + size = 10000; + append = true; + expireDuplicatesFirst = true; + extended = true; + path = "${homeDir}/.histfile"; + # Don't share history between sessions. + share = false; + }; + # Completion tanks startup performance. + enableCompletion = false; + zprof.enable = false; + initExtra = '' + autoload -U colors && colors + exit_code_guy() + { + if [[ $? == 0 ]]; then + echo "(・_・) >" + else + echo "(″ãƒã‚›) > %{$fg[red]%}$?%{$fg[cyan]%}" + fi + } + setopt prompt_subst + if [[ -v NIX_SHELL ]]; then + PS1="($NIX_SHELL)%{$fg[yellow]%}%n%{$fg[red]%}@%{$fg[light\ red]%}%M%{$fg[cyan]%}:%~\$(exit_code_guy)%{$reset_color%} " + else + PS1="%{$fg[yellow]%}%n%{$fg[red]%}@%{$fg[light\ red]%}%M%{$fg[cyan]%}:%~\$(exit_code_guy)%{$reset_color%} " + fi + ''; + }; + }; +} diff --git a/nix_archive/nix/scripts.nix b/nix_archive/nix/scripts.nix new file mode 100644 index 0000000..2f53a2a --- /dev/null +++ b/nix_archive/nix/scripts.nix @@ -0,0 +1,28 @@ +{ config, lib, pkgs, ... }: +let + loc = config.local; + colo = loc.scheme; +in { + environment.etc = { + "emoji.json".source = builtins.fetchurl { + url = "https://raw.githubusercontent.com/github/gemoji/0eca75db9301421efc8710baf7a7576793ae452a/db/emoji.json"; + sha256 = "sha256-sXSuKusyG1L2Stuf9BL5ZqfzOIOdeAeE3RXcrXAsLdY="; + }; + }; + environment.systemPackages = with pkgs; [ + (writeShellScriptBin "bemenu-colored" '' + bemenu -C --single-instance -B 0 -M 0 --hp 6 \ + --fn "${loc.font.name} ${toString (loc.font.size - 1)}" -H ${toString ((loc.font.size * 2) - 4)} \ + --cf "#${colo.foreground}" --cb "#${colo.background}" \ + --hf "#${colo.background}" --hb "#${colo.color4}" \ + --nf "#${colo.foreground}" --nb "#${colo.background}" \ + --ff "#${colo.foreground}" --fb "#${colo.background}" \ + --af "#${colo.foreground}" --ab "#${colo.background}" -p "" + '') + ] ++ (lib.lists.forEach loc.scripts.imports (x: pkgs.writeTextFile { + name = x; + text = (builtins.readFile ../../scripts/desktop/${x}); + executable = true; + destination = "/bin/${x}"; + })); +} diff --git a/nix_archive/nix/settings.nix b/nix_archive/nix/settings.nix new file mode 100644 index 0000000..743529c --- /dev/null +++ b/nix_archive/nix/settings.nix @@ -0,0 +1,8 @@ +{ + disks = { + nfs_options = [ "noatime" "nodiratime" "rw" "bg" "hard" "fsc" "proto=tcp" "timeo=600" "nfsvers=4" "minorversion=2" "x-systemd.automount" "noauto" "x-systemd.idle-timeout=60" "x-systemd.device-timeout=5s" "x-systemd.mount-timeout=5s" ]; + hdd_options = [ "noatime" ]; + cdrom_options = [ "ro" "user" "noauto" "unhide" ]; + ntfs_options = [ "uid=1000" "gid=100" "rw" "user" "exec" "umask=000" ]; + }; +} diff --git a/nix_archive/nix/steam.nix b/nix_archive/nix/steam.nix new file mode 100644 index 0000000..66d675f --- /dev/null +++ b/nix_archive/nix/steam.nix @@ -0,0 +1,48 @@ +{ config, lib, pkgs, ... }: let + loc = config.local; +in { + environment.systemPackages = with pkgs; lib.lists.flatten [ + (asNeeded "protontricks" ["protontricks" "protontricks-launch"]) + (writeShellScriptBin "run-steam-gamescope" '' + export TTY=/dev/tty4 + export XDG_VTNR=4 + cd $HOME + exec ${pkgs.kbd}/bin/openvt --switch --login --console 4 -f -- steam-gamescope + '') + (writeShellScriptBin "proton-env" '' + export STEAM_COMPAT_LAUNCHER_SERVICE=proton + export DXVK_HUD=compiler + export DXVK_LOG_LEVEL=none + export DXVK_DEBUG=none + export VKD3D_HUD=compiler + export VKD3D_CONFIG=dxr + export VKD3D_DEBUG=none + export VKD3D_SHADER_DEBUG=none + export mesa_glthread=true + xrandr --output ${loc.monitors.monitor1} --primary + exec env --unset=SDL_VIDEODRIVER --unset=SDL_VIDEO_DRIVER MANGOHUD=1 gamemoderun "$@" + '') + ]; + programs.steam = { + enable = true; + gamescopeSession = let + width = "2560"; + height = "1440"; + in { + enable = true; + args = [ + "-W ${width}" "-H ${height}" + "-w ${width}" "-h ${height}" + "-r 144" + "-O ${loc.monitors.monitor1}" + "--rt" + "-f" + "-e" + #"-o 10" + "--adaptive-sync" + #"--force-grab-cursor" + "--mangoapp" + ]; + }; + }; +} diff --git a/nix_archive/nix/system.nix b/nix_archive/nix/system.nix new file mode 100644 index 0000000..92b95df --- /dev/null +++ b/nix_archive/nix/system.nix @@ -0,0 +1,134 @@ +{ config, lib, pkgs, ... }: { + nix = { + settings = { + experimental-features = [ "nix-command" "flakes" ]; + system-features = [ "big-parallel" "kvm" ]; + auto-optimise-store = true; + download-buffer-size = 134217728; + }; + gc.automatic = false; + optimise.automatic = true; + }; + + nixpkgs.config.allowUnfree = true; + hardware.enableRedistributableFirmware = true; + + security.pam.loginLimits = [ + { + domain = "*"; + type = "soft"; + item = "nice"; + value = "-11"; + } + { + domain = "*"; + type = "hard"; + item = "nice"; + value = "-11"; + } + { + domain = "*"; + type = "soft"; + item = "rtprio"; + value = "99"; + } + { + domain = "*"; + type = "hard"; + item = "rtprio"; + value = "99"; + } + { + domain = "*"; + type = "soft"; + item = "nofile"; + value = "8192"; + } + { + domain = "*"; + type = "hard"; + item = "nofile"; + value = "1048576"; + } + { + domain = "*"; + type = "soft"; + item = "memlock"; + value = "unlimited"; + } + { + domain = "*"; + type = "hard"; + item = "memlock"; + value = "unlimited"; + } + ]; + #systemd.services.nix-daemon.serviceConfig.LimitNOFILE = lib.mkForce 134217728; + + security.wrappers = { + ping = { + owner = "root"; + group = "root"; + source = "${pkgs.iputils.out}/bin/ping"; + capabilities = "cap_net_raw+p"; + }; + }; + + hardware.graphics = { + enable = true; + extraPackages = with pkgs; [ + libvdpau-va-gl + vaapiVdpau + ]; + }; + + environment.systemPackages = with pkgs; [ + git # flakes + appimage-run + i2c-tools + pciutils + smartmontools + lm_sensors + libdrm + libva-utils + vulkan-loader + vulkan-validation-layers + vulkan-tools + mesa-demos + ]; + + boot.binfmt.registrations.appimage = { + wrapInterpreterInShell = false; + interpreter = "${pkgs.appimage-run}/bin/appimage-run"; + recognitionType = "magic"; + offset = 0; + mask = ''\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff''; + magicOrExtension = ''\x7fELF....AI\x02''; + }; + + services.openssh.enable = true; + + time.timeZone = "America/New_York"; + i18n.defaultLocale = "en_US.UTF-8"; + i18n.supportedLocales = [ + "C.UTF-8/UTF-8" + "${config.i18n.defaultLocale}/UTF-8" + "ja_JP.UTF-8/UTF-8" + "ko_KR.UTF-8/UTF-8" + ]; + i18n.glibcLocales = pkgs.glibcLocales.override { + allLocales = false; + locales = [ + "C.UTF-8/UTF-8" + "${config.i18n.defaultLocale}/UTF-8" + "ja_JP.UTF-8/UTF-8" + "ko_KR.UTF-8/UTF-8" + ]; + }; + + console = { + font = "Lat2-Terminus16"; + keyMap = "us"; + useXkbConfig = false; + }; +} diff --git a/nix_archive/nix/user.nix b/nix_archive/nix/user.nix new file mode 100644 index 0000000..817d36e --- /dev/null +++ b/nix_archive/nix/user.nix @@ -0,0 +1,211 @@ +{ config, lib, pkgs, ... }: let + loc = config.local; + colo = loc.scheme; +in { + users.users.andrew = { + isNormalUser = true; + uid = 1000; + extraGroups = [ "wheel" "input" "audio" "video" "render" "disk" "cdrom" ]; + }; + nix.settings.trusted-users = [ "andrew" ]; + + documentation = { + enable = true; + man.enable = true; + dev.enable = true; + }; + + fonts = { + fontDir.enable = true; + packages = with pkgs; [ + local-fonts + vistafonts + noto-fonts + noto-fonts-extra + noto-fonts-cjk-sans + noto-fonts-cjk-serif + noto-fonts-emoji-blob-bin + mplus-outline-fonts.osdnRelease + intel-one-mono + nanum-gothic-coding + iosevka-comfy.comfy + dina-font + freefont_ttf # FreeMono + ]; + fontconfig = { + enable = true; + includeUserConf = false; + allowBitmaps = true; + cache32Bit = true; + antialias = true; + hinting = { + enable = false; + style = "slight"; + }; + subpixel = { + rgba = "rgb"; + lcdfilter = "light"; + }; + defaultFonts = { + serif = [ loc.ui-font.name ]; + sansSerif = [ loc.ui-font.name ]; + monospace = [ loc.font.name ]; + emoji = [ loc.emoji-font.name ]; + }; + }; + }; + + environment.systemPackages = with pkgs; lib.lists.flatten [ + man-pages + man-pages-posix + home-manager + mercurial + file + bc + screen + loccount + (aspellWithDicts (dicts: with dicts; [ en en-computers en-science ])) + rsync + (python3.withPackages (python-pkgs: [ python-pkgs.requests python-pkgs.beautifulsoup4 ])) + htop + neofetch + ufetch + (asNeeded "cmatrix" ["cmatrix"]) + hdparm + #dcfldd + ddrescue + cdrtools + usbutils + cryptsetup + (asNeeded "nix-index" ["nix-channel-index" "nix-index" "nix-locate"]) + imagemagick + pngcheck + (asNeeded "optipng" ["optipng"]) + (asNeeded "dmtx-utils" ["dmtxquery" "dmtxread" "dmtxwrite"]) + (asNeeded "zbar" ["zbarcam" "zbarcam-gtk" "zbarcam-qt" "zbarimg"]) + perlPackages.ArchiveZip # For crc32. + b3sum + libfaketime + cpulimit + dos2unix + socat + curl + (asNeeded "httrack" ["htsserver" "httrack" "proxytrack" "webhttrack"]) + libuchardet + (unzip.override { enableNLS = true; }) + rar + unrar + p7zip + rclone + ffmpeg-headless + xdg-utils + jq + when + evtest + linuxConsoleTools + wev + gcr + pass + zenity + ]; + + local.scripts.imports = [ + "install-as-needed" + "cpu-vulns" + "sp" # spell + "ts-date" + "term-font-size" + "shift-jis-zip" + "7z-password" + "moonrune-charset-utf8" + "gpg-pubkey" + "img-fstype" + "mount-nfs" + "rewrite-git" + "xbox360-ffmpeg-enc" + ]; + + programs.screen = { + enable = true; + screenrc = '' + termcapinfo xterm* ti@:te@ + defscrollback 10000 + startup_message off + ''; + }; + + programs.mtr.enable = true; + services.gnome.gnome-keyring.enable = false; + programs.gnupg.agent = { + enable = true; + pinentryPackage = pkgs.pinentry-gnome3; + enableSSHSupport = true; + settings = { + default-cache-ttl = 28800; + max-cache-ttl = 28800; + }; + }; + programs.ssh = { + extraConfig = "AddKeysToAgent yes"; + }; + + home-manager.users.andrew = let + homeDir = "${config.users.users.andrew.home}"; + in { + home.username = "andrew"; + xdg.userDirs = { + enable = true; + desktop = "${homeDir}/tmp"; + documents = "${homeDir}/docs"; + download = "${homeDir}/dl"; + music = "${homeDir}/tmp"; + pictures = "${homeDir}/pics"; + publicShare = "${homeDir}/tmp"; + templates = "${homeDir}/tmp"; + videos = "${homeDir}/dl/mp4"; + }; + home.sessionVariables = { + GOPATH = "${homeDir}/tmp/go"; + }; + programs.git = { + enable = true; + userEmail = "andrew@akon.city"; + userName = "Andrew Opalach"; + signing = { + key = "99659CB58598BDDB"; # The last digits of the key. + signByDefault = true; + }; + extraConfig = { + format.signOff = true; + init.defaultBranch = "master"; + }; + }; + home.file.".config/gdb/gdbinit".source = ../../files/gdbinit; + home.file.".config/colors.json".text = '' + { + "special": { + "background": "${colo.background}", + "foreground": "${colo.foreground}" + }, + "colors": { + "color0": "${colo.color0}", + "color1": "${colo.color1}", + "color2": "${colo.color2}", + "color3": "${colo.color3}", + "color4": "${colo.color4}", + "color5": "${colo.color5}", + "color6": "${colo.color6}", + "color7": "${colo.color7}", + "color8": "${colo.color8}", + "color9": "${colo.color9}", + "color10": "${colo.color10}", + "color11": "${colo.color11}", + "color12": "${colo.color12}", + "color13": "${colo.color13}", + "color14": "${colo.color14}", + "color15": "${colo.color15}" + } + } + ''; + }; +} diff --git a/nix_archive/nix/virtualisation.nix b/nix_archive/nix/virtualisation.nix new file mode 100644 index 0000000..bc6a6c0 --- /dev/null +++ b/nix_archive/nix/virtualisation.nix @@ -0,0 +1,15 @@ +{ pkgs, ... }: { + users.users.andrew.extraGroups = [ "libvirtd" "kvm" ]; + virtualisation.libvirtd.enable = true; + programs.virt-manager.enable = true; + virtualisation.spiceUSBRedirection.enable = true; + environment.systemPackages = with pkgs; [ + virt-manager + OVMF + spice-gtk + looking-glass-client + ]; + local.scripts.imports = [ + "looking-glass" + ]; +} diff --git a/nix_archive/nix/x86.nix b/nix_archive/nix/x86.nix new file mode 100644 index 0000000..a8ebdd1 --- /dev/null +++ b/nix_archive/nix/x86.nix @@ -0,0 +1,3 @@ +{ ... }: { + hardware.graphics.enable32Bit = true; +} |