diff --git a/hosts/NixOS.nix b/hosts/NixOS.nix index 6fd834e..15c2a3c 100644 --- a/hosts/NixOS.nix +++ b/hosts/NixOS.nix @@ -1,7 +1,7 @@ { suites, ... }: { ### root password is empty by default ### - imports = suites.graphics; + imports = suites.core; boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; diff --git a/modules/list.nix b/modules/list.nix index ab5875b..1e3ec72 100644 --- a/modules/list.nix +++ b/modules/list.nix @@ -1,6 +1 @@ -[ - ./services/torrent/qbittorrent.nix - ./security/mitigations.nix - ./services/hardware/wii-u-gc-adapter.nix - ./services/x11/window-managers/steam.nix -] +[ ] diff --git a/modules/security/mitigations.nix b/modules/security/mitigations.nix deleted file mode 100644 index 7f96431..0000000 --- a/modules/security/mitigations.nix +++ /dev/null @@ -1,50 +0,0 @@ -{ config, lib, ... }: -with lib; -let - inherit (builtins) readFile fetchurl; - - cfg = config.security.mitigations; - - cmdline = '' - ibrs noibpb nopti nospectre_v2 nospectre_v1 l1tf=off nospec_store_bypass_disable no_stf_barrier mds=off tsx=on tsx_async_abort=off mitigations=off - ''; -in -{ - options = { - security.mitigations.disable = mkOption { - type = types.bool; - default = false; - description = '' - Whether to disable spectre and meltdown mitigations in the kernel. Do - not use this in mission critical deployments, or on any machine you do - not have physical access to. - ''; - }; - - security.mitigations.acceptRisk = mkOption { - type = types.bool; - default = false; - description = '' - To ensure users know what they are doing, they must explicitly accept - the risk of turning off mitigations by enabling this. - ''; - }; - }; - - config = mkIf cfg.disable { - assertions = [{ - assertion = cfg.acceptRisk; - message = '' - You have enabled 'security.mitigations.disable' without accepting the - risk of disabling mitigations. - - You must explicitly accept the risk of running the kernel without - Spectre or Meltdown mitigations. Set 'security.mitigations.acceptRisk' - to 'true' only if you know what your doing! - ''; - }]; - - boot.kernelParams = splitString " " cmdline; - - }; -} diff --git a/modules/services/games/gamemode.nix b/modules/services/games/gamemode.nix deleted file mode 100644 index cc0149d..0000000 --- a/modules/services/games/gamemode.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ config, lib, pkgs, ... }: - -with lib; -let cfg = config.services.gamemode; -in -{ - options.services.gamemode = { - enable = mkOption { - type = types.bool; - default = false; - description = '' - Whether to enable the gamemoded systemd user service. - ''; - }; - }; - - config = mkIf cfg.enable { - environment.systemPackages = [ pkgs.gamemode ]; - - services.dbus.packages = [ pkgs.gamemode ]; - - systemd.user.services.gamemoded = { - description = "gamemoded"; - - serviceConfig = { - Type = "dbus"; - BusName = "com.feralinteractive.GameMode"; - NotifyAccess = "main"; - ExecStart = "${pkgs.gamemode}/bin/gamemoded"; - }; - - wantedBy = [ "graphical-session.target" ]; - partOf = [ "graphical-session.target" ]; - }; - }; -} diff --git a/modules/services/hardware/wii-u-gc-adapter.nix b/modules/services/hardware/wii-u-gc-adapter.nix deleted file mode 100644 index 3bfa1b7..0000000 --- a/modules/services/hardware/wii-u-gc-adapter.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ config, lib, pkgs, ... }: - -with lib; -let cfg = config.services.wii-u-gc-adapter; -in -{ - options = { - services.wii-u-gc-adapter = { - enable = mkOption { - type = types.bool; - default = false; - description = '' - Whether to enable wii-u-gc-adapter service to automatically start - when the controller adapter is plugged in. - ''; - }; - }; - }; - config = mkIf cfg.enable { - services.udev.extraRules = '' - # start wii-u-gc-adapter when plugged in - ACTION=="add", SUBSYSTEM=="usb", ENV{ID_VENDOR_ID}=="057e", \ - ENV{ID_MODEL_ID}=="0337", TAG+="systemd", \ - ENV{SYSTEMD_ALIAS}="/sys/subsystem/usb/wii-u-gc-adapter", \ - ENV{SYSTEMD_WANTS}+="wii-u-gc-adapter.service" - - # workaround for https://github.com/systemd/systemd/issues/7587 - ACTION=="remove", SUBSYSTEM=="usb", ENV{PRODUCT}=="57e/337/100", \ - TAG+="systemd" - ''; - - systemd.services.wii-u-gc-adapter = { - enable = true; - script = '' - ${pkgs.wii-u-gc-adapter}/bin/wii-u-gc-adapter - ''; - unitConfig = { StopWhenUnneeded = true; }; - }; - }; -} diff --git a/modules/services/torrent/qbittorrent.nix b/modules/services/torrent/qbittorrent.nix deleted file mode 100644 index ede365b..0000000 --- a/modules/services/torrent/qbittorrent.nix +++ /dev/null @@ -1,114 +0,0 @@ -{ config, lib, pkgs, ... }: -with lib; -let - cfg = config.services.qbittorrent; - configDir = "${cfg.dataDir}/.config"; - openFilesLimit = 4096; -in -{ - options.services.qbittorrent = { - enable = mkOption { - type = types.bool; - default = false; - description = '' - Run qBittorrent headlessly as systemwide daemon - ''; - }; - - dataDir = mkOption { - type = types.path; - default = "/var/lib/qbittorrent"; - description = '' - The directory where qBittorrent will create files. - ''; - }; - - user = mkOption { - type = types.str; - default = "qbittorrent"; - description = '' - User account under which qBittorrent runs. - ''; - }; - - group = mkOption { - type = types.str; - default = "qbittorrent"; - description = '' - Group under which qBittorrent runs. - ''; - }; - - port = mkOption { - type = types.port; - default = 8080; - description = '' - qBittorrent web UI port. - ''; - }; - - openFirewall = mkOption { - type = types.bool; - default = false; - description = '' - Open services.qBittorrent.port to the outside network. - ''; - }; - - openFilesLimit = mkOption { - default = openFilesLimit; - description = '' - Number of files to allow qBittorrent to open. - ''; - }; - }; - - config = mkIf cfg.enable { - - environment.systemPackages = [ pkgs.qbittorrent ]; - - nixpkgs.overlays = [ - (final: prev: { - qbittorrent = prev.qbittorrent.override { guiSupport = false; }; - }) - ]; - - networking.firewall = mkIf cfg.openFirewall { - allowedTCPPorts = [ cfg.port ]; - allowedUDPPorts = [ cfg.port ]; - }; - - systemd.services.qbittorrent = { - after = [ "network.target" ]; - description = "qBittorrent Daemon"; - wantedBy = [ "multi-user.target" ]; - path = [ pkgs.qbittorrent ]; - serviceConfig = { - ExecStart = '' - ${pkgs.qbittorrent}/bin/qbittorrent-nox \ - --profile=${configDir} \ - --webui-port=${toString cfg.port} - ''; - # To prevent "Quit & shutdown daemon" from working; we want systemd to - # manage it! - Restart = "on-success"; - User = cfg.user; - Group = cfg.group; - UMask = "0002"; - LimitNOFILE = cfg.openFilesLimit; - }; - }; - - users.users = mkIf (cfg.user == "qbittorrent") { - qbittorrent = { - group = cfg.group; - home = cfg.dataDir; - createHome = true; - description = "qBittorrent Daemon user"; - }; - }; - - users.groups = - mkIf (cfg.group == "qbittorrent") { qbittorrent = { gid = null; }; }; - }; -} diff --git a/modules/services/x11/window-managers/steam.nix b/modules/services/x11/window-managers/steam.nix deleted file mode 100644 index 46b3cb5..0000000 --- a/modules/services/x11/window-managers/steam.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ pkgs, lib, config, ... }: - -with lib; -let cfg = config.services.xserver.windowManager.steam; -in -{ - options = { - services.xserver.windowManager.steam = { - enable = mkEnableOption "steam"; - package = mkOption { - type = lib.types.package; - default = pkgs.steam; - description = '' - The Steam package to use. - ''; - }; - extraSessionCommands = mkOption { - type = lib.types.str; - default = ""; - description = '' - Shell commands executed just before Steam is started. - ''; - }; - }; - }; - - config = mkIf cfg.enable { - environment.systemPackages = with pkgs; [ cfg.package ]; - - services.xserver.windowManager.session = [{ - name = "steam"; - start = '' - ${cfg.extraSessionCommands} - - # needed to ensure conflicting compositors are not running - ${pkgs.systemd}/bin/systemctl --user stop graphical-session.target - - ${pkgs.xorg.xset}/bin/xset -dpms - ${pkgs.xorg.xset}/bin/xset s off - ${pkgs.steamcompmgr}/bin/steamcompmgr & - steam -tenfoot -fulldesktopres - ''; - }]; - }; -} diff --git a/overlays/any-nix-shell.nix b/overlays/any-nix-shell.nix deleted file mode 100644 index 635e37d..0000000 --- a/overlays/any-nix-shell.nix +++ /dev/null @@ -1,11 +0,0 @@ -final: prev: { - any-nix-shell = prev.any-nix-shell.overrideAttrs - (o: { - src = prev.fetchFromGitHub { - owner = "haslersn"; - repo = "any-nix-shell"; - rev = "e6b86e6e6d86cf7bcbc2691596d54d0a1db29d29"; - hash = "sha256-ZmMl58sYVj5TVw19nxPht5nAv9qWnIyImRhs1/TrsRc="; - }; - }); -} diff --git a/overlays/cursor.nix b/overlays/cursor.nix deleted file mode 100644 index b73a061..0000000 --- a/overlays/cursor.nix +++ /dev/null @@ -1,7 +0,0 @@ -final: prev: { - # set default cursor theme when installed - cursor = prev.writeTextDir "share/icons/default/index.theme" '' - [icon theme] - Inherits=Adwaita - ''; -} diff --git a/overlays/kakoune.nix b/overlays/kakoune.nix deleted file mode 100644 index 8a61aa4..0000000 --- a/overlays/kakoune.nix +++ /dev/null @@ -1,16 +0,0 @@ -final: prev: { - kakoune = prev.kakoune.override { - configure.plugins = with final.kakounePlugins; [ - (kak-fzf.override { fzf = final.skim; }) - kak-auto-pairs - kak-buffers - kak-powerline - kak-vertical-selection - ]; - }; - - # wrapper to specify config dir - kakoune-config = prev.writeShellScriptBin "k" '' - XDG_CONFIG_HOME=/etc/xdg exec ${final.kakoune}/bin/kak "$@" - ''; -} diff --git a/overlays/nix-zsh-completions.nix b/overlays/nix-zsh-completions.nix deleted file mode 100644 index f465e98..0000000 --- a/overlays/nix-zsh-completions.nix +++ /dev/null @@ -1,10 +0,0 @@ -final: prev: { - nix-zsh-completions = prev.nix-zsh-completions.overrideAttrs (o: { - src = prev.fetchFromGitHub { - owner = "Ma27"; - repo = "nix-zsh-completions"; - hash = "sha256-3HVYez/wt7EP8+TlhTppm968Wl8x5dXuGU0P+8xNDpo="; - rev = "939c48c182e9d018eaea902b1ee9d00a415dba86"; - }; - }); -} diff --git a/overlays/qutebrowser.nix b/overlays/qutebrowser.nix deleted file mode 100644 index da823eb..0000000 --- a/overlays/qutebrowser.nix +++ /dev/null @@ -1,6 +0,0 @@ -final: prev: { - qutebrowser = prev.qutebrowser.overrideAttrs - (self: { - meta.platforms = prev.lib.filter (platform: ! prev.lib.elem platform [ "aarch64-linux" "i686-linux" ]) self.meta.platforms; - }); -} diff --git a/overlays/redshift.nix b/overlays/redshift.nix deleted file mode 100644 index fa05132..0000000 --- a/overlays/redshift.nix +++ /dev/null @@ -1,11 +0,0 @@ -final: prev: { - # with sway/wayland support - redshift = (prev.redshift.overrideAttrs (o: { - src = prev.fetchFromGitHub { - owner = "minus7"; - repo = "redshift"; - rev = "wayland"; - hash = "sha256-pyR7xNdi/83NSoC2WIrX8U+A6nU+vZBlePLXrQZnc1k="; - }; - })).override { withAppIndicator = prev.stdenv.isLinux; }; -} diff --git a/overlays/retroarchBare.nix b/overlays/retroarchBare.nix deleted file mode 100644 index ea6c656..0000000 --- a/overlays/retroarchBare.nix +++ /dev/null @@ -1,23 +0,0 @@ -let version = "1.9.0"; -in -final: prev: { - retroarchBare = prev.retroarchBare.overrideAttrs (o: { - inherit version; - - src = prev.fetchFromGitHub { - owner = "libretro"; - repo = "RetroArch"; - hash = "sha256-dzPOuT+v1JtYzvAtqZ/eVWQSYQLAWX3TyS3jXdBmDdg="; - rev = "v${version}"; - }; - - # fix darwin builds - nativeBuildInputs = - if ! prev.stdenv.isLinux then - prev.lib.filter - (drv: ! prev.lib.hasPrefix "wayland" drv.name) - o.nativeBuildInputs - else - o.nativeBuildInputs; - }); -} diff --git a/overlays/slock.nix b/overlays/slock.nix deleted file mode 100644 index 4a61a4f..0000000 --- a/overlays/slock.nix +++ /dev/null @@ -1,3 +0,0 @@ -final: prev: { - slock = prev.slock.overrideAttrs (o: { patches = [ ../pkgs/misc/screensavers/slock/window_name.patch ]; }); -} diff --git a/overlays/wl-clipboard.nix b/overlays/wl-clipboard.nix deleted file mode 100644 index d9f288c..0000000 --- a/overlays/wl-clipboard.nix +++ /dev/null @@ -1,11 +0,0 @@ -final: prev: { - # nixpkgs version causing issues for me - wl-clipboard = prev.wl-clipboard.overrideAttrs (o: { - src = prev.fetchFromGitHub { - owner = "bugaevc"; - repo = "wl-clipboard"; - rev = "c010972e6b0d2eb3002c49a6a1b5620ff5f7c910"; - sha256 = "020l3jy9gsj6gablwdfzp1wfa8yblay3axdjc56i9q8pbhz7g12j"; - }; - }); -} diff --git a/pkgs/applications/display-managers/sddm/themes/chili/default.nix b/pkgs/applications/display-managers/sddm/themes/chili/default.nix deleted file mode 100644 index 1085b8d..0000000 --- a/pkgs/applications/display-managers/sddm/themes/chili/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ stdenv, fetchFromGitHub, ... }: -let version = "0.1.5"; -in -stdenv.mkDerivation { - pname = "sddm-chili"; - inherit version; - - src = fetchFromGitHub { - owner = "MarianArlt"; - repo = "sddm-chili"; - rev = "${version}"; - hash = "sha256-wxWsdRGC59YzDcSopDRzxg8TfjjmA3LHrdWjepTuzgw="; - }; - - installPhase = '' - mkdir -p $out/share/sddm/themes/chili - - cp -r * $out/share/sddm/themes/chili - ''; - - meta = with stdenv.lib; { - inherit version; - description = "The hottest theme around for SDDM"; - homepage = "https://github.com/MarianArlt/sddm-chili"; - maintainers = [ maintainers.nrdxp ]; - license = licenses.gpl3; - platforms = platforms.linux; - }; -} diff --git a/pkgs/applications/window-managers/steamcompmgr/default.nix b/pkgs/applications/window-managers/steamcompmgr/default.nix deleted file mode 100644 index cb87e08..0000000 --- a/pkgs/applications/window-managers/steamcompmgr/default.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ stdenv -, fetchFromGitHub -, libudev -, SDL -, SDL_image -, libXdamage -, libXcomposite -, libXrender -, libXext -, libXxf86vm -, pkgconfig -, autoreconfHook -, gnumake -}: - -stdenv.mkDerivation { - name = "steamcompmgr"; - src = fetchFromGitHub { - owner = "gamer-os"; - repo = "steamos-compositor-plus"; - rev = "c3855fcb5015ecdca299ee4b46b9f90c7a6788de"; - hash = "sha256-sRthjN+pnabl67PuJS+zbUznW4ws0fub0R9bTzelg18="; - }; - - buildInputs = [ - libudev - SDL - SDL_image - libXdamage - libXcomposite - libXrender - libXext - libXxf86vm - pkgconfig - autoreconfHook - gnumake - ]; - - meta = with stdenv.lib; { - description = "SteamOS Compositor"; - homepage = "https://github.com/steamos-compositor-plus"; - maintainers = [ maintainers.nrdxp ]; - license = licenses.bsd2; - platforms = platforms.linux; - inherit version; - }; -} diff --git a/pkgs/data/fonts/dejavu-nerdfont/default.nix b/pkgs/data/fonts/dejavu-nerdfont/default.nix deleted file mode 100644 index fa7fa12..0000000 --- a/pkgs/data/fonts/dejavu-nerdfont/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -let version = "2.0.0"; -in -{ stdenv, fetchzip }: - -stdenv.mkDerivation { - pname = "dejavu-nerdfont"; - inherit version; - - src = fetchzip { - url = - "https://github.com/ryanoasis/nerd-fonts/releases/download/v${version}/DejaVuSansMono.zip"; - hash = "sha256-yMvKzt5CKpK1bThT25lqSyRvZRCFvo6HHbTj+ripdCo="; - stripRoot = false; - }; - buildCommand = '' - install --target $out/share/fonts/opentype -D $src/*Mono.ttf - ''; - - meta = with stdenv.lib; { - description = "Nerdfont version of DejaVu"; - homepage = "https://github.com/ryanoasis/nerd-fonts"; - license = licenses.mit; - maintainers = [ maintainers.nrdxp ]; - platforms = platforms.unix; - inherit version; - }; -} diff --git a/pkgs/default.nix b/pkgs/default.nix index fd75896..ce16870 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -1,11 +1 @@ -final: prev: { - sddm-chili = - prev.callPackage ./applications/display-managers/sddm/themes/chili { }; - dejavu_nerdfont = prev.callPackage ./data/fonts/dejavu-nerdfont { }; - purs = prev.callPackage ./shells/zsh/purs { }; - pure = prev.callPackage ./shells/zsh/pure { }; - wii-u-gc-adapter = prev.callPackage ./misc/drivers/wii-u-gc-adapter { }; - libinih = prev.callPackage ./development/libraries/libinih { }; - steamcompmgr = - prev.callPackage ./applications/window-managers/steamcompmgr { }; -} +final: prev: { } diff --git a/pkgs/development/libraries/libinih/default.nix b/pkgs/development/libraries/libinih/default.nix deleted file mode 100644 index 6d81f72..0000000 --- a/pkgs/development/libraries/libinih/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ stdenv, meson, ninja, fetchFromGitHub, ... }: -let version = "r50"; -in -stdenv.mkDerivation { - pname = "libinih"; - inherit version; - - src = fetchFromGitHub { - owner = "benhoyt"; - repo = "inih"; - rev = "${version}"; - hash = "sha256-GF+TVEysaXJxSBBjMsTr2IQvRKlzdEu3rlPQ88PE3nI="; - }; - - buildInputs = [ meson ninja ]; - - mesonFlags = '' - -Ddefault_library=shared - -Ddistro_install=true - ''; - - meta = with stdenv.lib; { - description = "Simple .INI file parser in C"; - homepage = "https://github.com/benhoyt/inih"; - maintainers = [ maintainers.nrdxp ]; - license = licenses.bsd3; - platforms = platforms.all; - inherit version; - }; -} diff --git a/pkgs/misc/drivers/wii-u-gc-adapter/default.nix b/pkgs/misc/drivers/wii-u-gc-adapter/default.nix deleted file mode 100644 index bd5359f..0000000 --- a/pkgs/misc/drivers/wii-u-gc-adapter/default.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ stdenv, fetchFromGitHub, pkgconfig, libudev, libusb, ... }: - -stdenv.mkDerivation { - pname = "wii-u-gc-adapter"; - version = "ae6b46d"; - - buildInputs = [ pkgconfig libudev libusb ]; - - src = fetchFromGitHub { - owner = "ToadKing"; - repo = "wii-u-gc-adapter"; - rev = "ae6b46d7a2b32068e746f1d2d816f4b3d6a7ac80"; - hash = "sha256-Dk4jMaL5P85yxH3pDVBDNKjtGL4gRkhN5CJqZnOAshE="; - }; - - installPhase = '' - mkdir -p $out/bin - install wii-u-gc-adapter $out/bin - ''; - - hardeningDisable = [ "format" ]; - - meta = with stdenv.lib; { - description = "Tool for using the Wii U GameCube Adapter on Linux"; - homepage = "https://github.com/ToadKing/wii-u-gc-adapter"; - maintainers = [ maintainers.nrdxp ]; - license = licenses.mit; - platforms = platforms.linux; - inherit version; - }; -} diff --git a/pkgs/misc/screensavers/slock/window_name.patch b/pkgs/misc/screensavers/slock/window_name.patch deleted file mode 100644 index 740b821..0000000 --- a/pkgs/misc/screensavers/slock/window_name.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/slock.c b/slock.c -index d2f0886..b0418f0 100644 ---- a/slock.c -+++ b/slock.c -@@ -219,8 +219,13 @@ lockscreen(Display *dpy, struct xrandr *rr, int screen) - struct lock *lock; - XColor color, dummy; - XSetWindowAttributes wa; -+ XTextProperty title; -+ char *name = "slock"; - Cursor invisible; - -+ if (XStringListToTextProperty(&name, 1, &title) == 0) -+ die("slock: out of memory\n"); -+ - if (dpy == NULL || screen < 0 || !(lock = malloc(sizeof(struct lock)))) - return NULL; - -@@ -243,6 +248,7 @@ lockscreen(Display *dpy, struct xrandr *rr, int screen) - CopyFromParent, - DefaultVisual(dpy, lock->screen), - CWOverrideRedirect | CWBackPixel, &wa); -+ XSetWMName(dpy, lock->win, &title); - lock->pmap = XCreateBitmapFromData(dpy, lock->win, curs, 8, 8); - invisible = XCreatePixmapCursor(dpy, lock->pmap, lock->pmap, - &color, &color, 0, 0); diff --git a/pkgs/os-specific/linux/gamemode/default.nix b/pkgs/os-specific/linux/gamemode/default.nix deleted file mode 100644 index e4b0746..0000000 --- a/pkgs/os-specific/linux/gamemode/default.nix +++ /dev/null @@ -1,52 +0,0 @@ -let version = "1.5.1"; -in -{ stdenv -, meson -, ninja -, polkit -, pkgconfig -, systemd -, dbus -, libinih -, fetchFromGitHub -, ... -}: - -stdenv.mkDerivation { - pname = "gamemode"; - inherit version; - - src = fetchFromGitHub { - owner = "FeralInteractive"; - repo = "gamemode"; - rev = "${version}"; - hash = "sha256-x3VM7HJL4+zLDBdCm0ekc0UX33lrRWlOieJjihhA5L4="; - }; - - prePatch = '' - substituteInPlace daemon/gamemode-tests.c --replace "/usr/bin/gamemoderun" $out/bin/gamemoderun - substituteInPlace daemon/gamemode-gpu.c --replace "/usr/bin/pkexec" ${polkit}/bin/pkexec - substituteInPlace daemon/gamemode-context.c --replace "/usr/bin/pkexec" ${polkit}/bin/pkexec - substituteInPlace lib/gamemode_client.h --replace 'dlopen("' 'dlopen("${ - placeholder "out" - }/lib/' - ''; - - buildInputs = [ meson ninja pkgconfig systemd dbus libinih ]; - - mesonFlags = '' - -Dwith-util=false - -Dwith-examples=false - -Dwith-systemd-user-unit-dir=${placeholder "out"}/lib/systemd/user - ''; - - meta = with stdenv.lib; { - description = "Optimise Linux system performance on demand"; - homepage = "https://github.com/FeralInteractive/gamemode"; - maintainers = [ maintainers.nrdxp ]; - license = licenses.bsd3; - platforms = platforms.linux; - broken = true; - inherit version; - }; -} diff --git a/pkgs/override.nix b/pkgs/override.nix index e5720a6..6dbced6 100644 --- a/pkgs/override.nix +++ b/pkgs/override.nix @@ -5,14 +5,7 @@ pkgs: final: prev: { inherit (pkgs) - dhall - discord - element-desktop - manix - nixpkgs-fmt - qutebrowser - signal-desktop - starship; + manix; haskellPackages = prev.haskellPackages.override { overrides = hfinal: hprev: diff --git a/pkgs/shells/zsh/pure/default.nix b/pkgs/shells/zsh/pure/default.nix deleted file mode 100644 index 7771e53..0000000 --- a/pkgs/shells/zsh/pure/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ stdenv, fetchFromGitHub }: -let version = "0e87bd8"; -in -stdenv.mkDerivation { - pname = "pure"; - inherit version; - - srcs = fetchFromGitHub { - owner = "sindresorhus"; - repo = "pure"; - rev = "0e87bd897bb67049329c55174dcc643926337b01"; - hash = "sha256-JytsTviVHphYnP5KTbSkbaiNeg2fMufYc6r0X0SQyqI="; - }; - - buildPhase = "true"; - - installPhase = '' - mkdir -p $out/share/zsh/plugins/pure - cp -r ./ $out/share/zsh/plugins/pure - ''; - - meta = with stdenv.lib; { - description = "Pretty, minimal and fast ZSH prompt"; - homepage = "https://github.com/sindresorhus/pure"; - maintainers = [ maintainers.nrdxp ]; - platforms = platforms.unix; - license = licenses.mit; - inherit version; - }; -} diff --git a/pkgs/shells/zsh/purs/default.nix b/pkgs/shells/zsh/purs/default.nix deleted file mode 100644 index a376857..0000000 --- a/pkgs/shells/zsh/purs/default.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ stdenv, fetchFromGitHub, openssl, pkgconfig, rustPlatform }: - -with rustPlatform; -let - inherit (builtins) readFile toFile; - - init = toFile "init.sh" "${readFile ./init.sh}"; -in -buildRustPackage { - pname = "purs"; - version = "0.1.0"; - - srcs = fetchFromGitHub { - owner = "TimB87"; - repo = "purs"; - rev = "ee40ff5edf79a1aee7f87b97ca32744944778769"; - hash = "sha256-ETU7dDGVa2ggM+qoFgi8k4MJNuqb3kNCX9ZbEA4r5PM="; - }; - - nativeBuildInputs = [ openssl pkgconfig ]; - - cargoSha256 = "sha256-FPxJuVyuuHdo2dNLhmJK6xXy12LJsbKNWBAo8pcuLDg="; - - preBuild = '' - export PKG_CONFIG_PATH=${openssl.dev}/lib/pkgconfig - export OPENSSL_DIRS=${openssl.out}:${openssl.dev} - ''; - - postInstall = '' - mkdir -p $out/share/zsh/plugins/purs - - substitute ${init} $out/share/zsh/plugins/purs/purs.zsh \ - --subst-var-by PURS $out - ''; - - meta = with stdenv.lib; { - description = "A Pure-inspired prompt in Rust"; - homepage = "https://github.com/xcambar/purs"; - maintainers = [ maintainers.nrdxp ]; - license = licenses.mit; - platforms = platforms.unix; - inherit version; - }; -} diff --git a/pkgs/shells/zsh/purs/init.sh b/pkgs/shells/zsh/purs/init.sh deleted file mode 100644 index 8f9fbc1..0000000 --- a/pkgs/shells/zsh/purs/init.sh +++ /dev/null @@ -1,17 +0,0 @@ -function zle-line-init zle-keymap-select { - if [[ $USER == root ]]; then - PROMPT=`@PURS@/bin/purs prompt -u -k "$KEYMAP" -r "$?" --venv "${${VIRTUAL_ENV:t}%-*}"` - else - PROMPT=`@PURS@/bin/purs prompt -us -k "$KEYMAP" -r "$?" --venv "${${VIRTUAL_ENV:t}%-*}"` - fi - zle reset-prompt -} -zle -N zle-line-init -zle -N zle-keymap-select - -autoload -Uz add-zsh-hook - -function _prompt_purs_precmd() { - @PURS@/bin/purs precmd -} -add-zsh-hook precmd _prompt_purs_precmd diff --git a/profiles/ci-agent/default.nix b/profiles/ci-agent/default.nix deleted file mode 100644 index 9dcb15a..0000000 --- a/profiles/ci-agent/default.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ ... }: { - services.hercules-ci-agent.enable = true; -} diff --git a/profiles/db/default.nix b/profiles/db/default.nix deleted file mode 100644 index c915eb0..0000000 --- a/profiles/db/default.nix +++ /dev/null @@ -1 +0,0 @@ -{ ... }: { } diff --git a/profiles/db/postgres/default.nix b/profiles/db/postgres/default.nix deleted file mode 100644 index 118e1f7..0000000 --- a/profiles/db/postgres/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ pkgs, ... }: { - services.postgresql = { - enable = true; - dataDir = "/srv/postgres"; - package = pkgs.postgresql_12; - }; -} diff --git a/profiles/develop/default.nix b/profiles/develop/default.nix deleted file mode 100644 index 337efe7..0000000 --- a/profiles/develop/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ pkgs, ... }: { - imports = [ ./zsh ./kakoune ./tmux ]; - - environment.shellAliases = { v = "$EDITOR"; pass = "gopass"; }; - - environment.sessionVariables = { - PAGER = "less"; - LESS = "-iFJMRWX -z-4 -x4"; - LESSOPEN = "|${pkgs.lesspipe}/bin/lesspipe.sh %s"; - EDITOR = "k"; - VISUAL = "k"; - }; - - environment.systemPackages = with pkgs; [ - clang - file - git-crypt - gnupg - less - ncdu - gopass - tig - tokei - wget - ]; - - fonts = { - fonts = [ pkgs.dejavu_nerdfont ]; - fontconfig.defaultFonts.monospace = - [ "DejaVu Sans Mono Nerd Font Complete Mono" ]; - }; - - documentation.dev.enable = true; - - programs.thefuck.enable = true; - programs.firejail.enable = true; - programs.mtr.enable = true; -} diff --git a/profiles/develop/haskell/default.nix b/profiles/develop/haskell/default.nix deleted file mode 100644 index f0ad46a..0000000 --- a/profiles/develop/haskell/default.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ pkgs, ... }: -let - inherit (pkgs) ghc; -in -{ - environment.systemPackages = [ - (ghc.withHoogle - (self: with self; [ - cabal2nix - cabal-install - implicit-hie - hie-bios - stack - ]) - ) - ]; -} diff --git a/profiles/develop/kakoune/default.nix b/profiles/develop/kakoune/default.nix deleted file mode 100644 index 7365d4a..0000000 --- a/profiles/develop/kakoune/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ pkgs, ... }: { - imports = [ ../python ../haskell ]; - - environment.systemPackages = with pkgs; [ - clang-tools - editorconfig-core-c - kak-lsp - kakoune-config - kakoune-unwrapped - nixpkgs-fmt - python3Packages.python-language-server - rustup - nix-linter - dhall - dhall-lsp-server - haskellPackages.haskell-language-server - ]; - - environment.etc = { - "xdg/kak-lsp/kak-lsp.toml".source = ./kak-lsp.toml; - "xdg/kak/kakrc".source = ./kakrc; - "xdg/kak/autoload/plugins".source = ./plugins; - "xdg/kak/autoload/lint".source = ./lint; - "xdg/kak/autoload/lsp".source = ./lsp; - "xdg/kak/autoload/default".source = - "${pkgs.kakoune-unwrapped}/share/kak/rc"; - }; -} diff --git a/profiles/develop/kakoune/kak-lsp.toml b/profiles/develop/kakoune/kak-lsp.toml deleted file mode 100644 index 9f5d8fb..0000000 --- a/profiles/develop/kakoune/kak-lsp.toml +++ /dev/null @@ -1,191 +0,0 @@ -snippet_support = true -verbosity = 2 - -[semantic_scopes] -# Map textmate scopes to kakoune faces for semantic highlighting -# the underscores are translated to dots, and indicate nesting. -# That is, if variable_other_field is omitted, it will try the face for -# variable_other and then variable -# -# To see a list of available scopes in the debug buffer, run lsp-semantic-available-scopes -variable = "variable" -entity_name_function = "function" -entity_name_type = "type" -variable_other_enummember = "variable" -entity_name_namespace = "module" - -# Semantic tokens support -# See https://github.com/microsoft/vscode-languageserver-node/blob/8c8981eb4fb6adec27bf1bb5390a0f8f7df2899e/client/src/semanticTokens.proposed.ts#L288 -# for token/modifier types. - -[semantic_tokens] -type = "type" -variable = "variable" -namespace = "module" -function = "function" -string = "string" -keyword = "keyword" -operator = "operator" -comment = "comment" - -[semantic_token_modifiers] -documentation = "documentation" -readonly = "default+d" - -[server] -# exit session if no requests were received during given period in seconds -# works only in unix sockets mode (-s/--session) -# set to 0 to disable -timeout = 1800 # seconds = 30 minutes - -[language.bash] -filetypes = ["sh"] -roots = [".git", ".hg"] -command = "bash-language-server" -args = ["start"] - -[language.c_cpp] -filetypes = ["c", "cpp"] -roots = ["compile_commands.json", ".clangd"] -command = "clangd" - -[language.crystal] -filetypes = ["crystal"] -roots = ["shard.yml"] -command = "scry" - -[language.css] -filetypes = ["css"] -roots = ["package.json"] -command = "css-languageserver" -args = ["--stdio"] - -[language.d] -filetypes = ["d", "di"] -roots = [".git", "dub.sdl", "dub.json"] -command = "dls" - -[language.dart] -# start shell to find path to dart analysis server source -filetypes = ["dart"] -roots = ["pubspec.yaml", ".git"] -command = "sh" -args = ["-c", "dart $(dirname $(which dart))/snapshots/analysis_server.dart.snapshot --lsp"] - -[language.elixir] -filetypes = ["elixir"] -roots = ["mix.exs"] -command = "elixir-ls" - -[language.elm] -filetypes = ["elm"] -roots = ["elm.json"] -command = "elm-language-server" -args = ["--stdio"] - -[language.elm.initialization_options] -runtime = "node" -elmPath = "elm" -elmFormatPath = "elm-format" -elmTestPath = "elm-test" - -[language.go] -filetypes = ["go"] -roots = ["Gopkg.toml", "go.mod", ".git", ".hg"] -command = "gopls" -offset_encoding = "utf-8" - -[language.haskell] -filetypes = ["haskell"] -roots = ["Setup.hs", "stack.yaml", "*.cabal"] -command = "haskell-language-server" -args = ["--lsp"] - -[language.html] -filetypes = ["html"] -roots = ["package.json"] -command = "html-languageserver" -args = ["--stdio"] - -[language.javascript] -filetypes = ["javascript"] -roots = [".flowconfig"] -command = "flow" -args = ["lsp"] - -[language.json] -filetypes = ["json"] -roots = ["package.json"] -command = "json-languageserver" -args = ["--stdio"] - -[language.latex] -filetypes = ["latex"] -roots = [".git"] -command = "texlab" - -[language.nim] -filetypes = ["nim"] -roots = ["*.nimble", ".git"] -command = "nimlsp" - -[language.nix] -filetypes = ["nix"] -roots = ["flake.nix", "shell.nix", ".git"] -command = "rnix-lsp" - -[language.dhall] -filetypes = ["dhall"] -roots = [".git"] -command = "dhall-lsp-server" - -[language.ocaml] -filetypes = ["ocaml"] -roots = ["Makefile", "opam", "*.opam", "dune"] -command = "ocaml-language-server" -args = ["--stdio"] - -[language.php] -filetypes = ["php"] -roots = [".htaccess", "composer.json"] -command = "intelephense" -args = ["--stdio"] - -[language.php.initialization_options] -storagePath = "/tmp/intelephense" - -[language.python] -filetypes = ["python"] -roots = ["requirements.txt", "setup.py", ".git", ".hg"] -command = "pyls" -offset_encoding = "utf-8" - -[language.reason] -filetypes = ["reason"] -roots = ["package.json", "Makefile", ".git", ".hg"] -command = "ocaml-language-server" -args = ["--stdio"] - -[language.ruby] -filetypes = ["ruby"] -roots = ["Gemfile"] -command = "solargraph" -args = ["stdio"] - -[language.rust] -filetypes = ["rust"] -roots = ["Cargo.toml"] -command = "sh" -args = ["-c", "if command -v rustup >/dev/null; then $(rustup which rls); else rls; fi"] - -# [language.rust] -# filetypes = ["rust"] -# roots = ["Cargo.toml"] -# command = "sh" -# args = ["-c", "if command -v rustup >/dev/null; then $(rustup which rust-analyzer); else rust-analyzer; fi"] - -[language.terraform] -filetypes = ["terraform"] -roots = ["*.tf"] -command = "terraform-ls" -args = ["serve"] diff --git a/profiles/develop/kakoune/kakrc b/profiles/develop/kakoune/kakrc deleted file mode 100644 index 3a5d21c..0000000 --- a/profiles/develop/kakoune/kakrc +++ /dev/null @@ -1,104 +0,0 @@ -hook global WinCreate ^[^*]+$ %{ add-highlighter window/ number-lines } - -# colorscheme -face global Information yellow,default -face global MenuBackground black,white -face global MenuForeground white,black -face global comment white+d -face global meta blue -addhl global/ column 80 SecondaryCursor - -# convert tabs to spaces and cleanup trailing whitespace on save -hook global BufWritePre ^[^*]+$ %{ - try %{ execute-keys -draft \%@s\h+$d } -} - -# use .editorconfig -hook global WinCreate .* %{editorconfig-load} - -# useful mappings -map global normal ': delete-buffer' -map global normal ': write' -map global normal ': quit' -map global normal ': buffer-next' -map global normal ': buffer-previous' -map global -docstring "comment line" user c ': comment-line' -map global -docstring "comment block" user C ': comment-block' -map -docstring "format buffer" global user f ': format' - -# splits just like vim using tmux -define-command -params 0.. -file-completion \ - -docstring "split tmux pane vertically" split \ - %{ tmux-terminal-vertical kak -c %val{session} -e edit! %arg{@} } - -define-command -params 0.. -file-completion \ - -docstring "split tmux pane horizontally" vsplit \ - %{ tmux-terminal-horizontal kak -c %val{session} -e edit! %arg{@} } - -alias global sp split -alias global vs vsplit - -# jj to leave insert mode -hook global InsertChar j %{ try %{ - exec -draft hH jj d - exec -}} - -set global ui_options ncurses_assistant=none -set global tabstop 2 -set global indentwidth 2 - -hook global InsertCompletionShow .* %{ - try %{ - # this command temporarily removes cursors preceded by whitespace; - # if there are no cursors left, it raises an error, does not - # continue to execute the mapping commands, and the error is eaten - # by the `try` command so no warning appears. - execute-keys -draft 'h\h' - map window insert - map window insert - } -} -hook global InsertCompletionHide .* %{ - unmap window insert - unmap window insert -} - -try %{ require-module kak } -add-highlighter shared/kakrc/code/if_else regex \b(if|else)\b 0:keyword - -# create an if for conditional parsing -define-command -docstring "if [else [if ] ]: if statement that accepts shell-valid condition string" \ -if -params 2.. %{ evaluate-commands %sh{ - while [ true ]; do - condition="[ $1 ]" - if [ -n "$3" ] && [ "$3" != "else" ]; then - printf "%s\n" "fail %{if: unknown operator '$3'}" - elif [ $# -eq 3 ]; then - printf "%s\n" "fail %{if: wrong argument count}" - elif eval $condition; then - [ -n "${2##*&*}" ] && arg="$2" || arg="$(printf '%s' "$2" | sed 's/&/&&/g')" - printf "%s\n" "evaluate-commands %& $arg &" - elif [ $# -eq 4 ]; then - [ -n "${4##*&*}" ] && arg="$4" || arg="$(printf '%s' "$4" | sed 's/&/&&/g')" - printf "%s\n" "evaluate-commands %& $arg &" - elif [ $# -gt 4 ]; then - if [ "$4" = "if" ]; then - shift 4 - continue - else - printf "%s\n" "fail %{if: wrong argument count}" - fi - fi - exit - done -}} - -# show git diff on sidebar if it git repository -if %[ "$(command git status 2>/dev/null)" ] %{ - hook global WinCreate .* %{ git show-diff } - hook global BufWritePost .* %{ git show-diff } - hook global ModeChange insert:normal %{ git show-diff } -} - -hook global WinCreate .* %{ kakboard-enable } diff --git a/profiles/develop/kakoune/lint/nix.kak b/profiles/develop/kakoune/lint/nix.kak deleted file mode 100644 index 4977ad0..0000000 --- a/profiles/develop/kakoune/lint/nix.kak +++ /dev/null @@ -1,12 +0,0 @@ -hook -group lint global WinSetOption filetype=nix %{ - # remove '' for nix, annoying for string literals - set buffer auto_pairs ( ) { } [ ] '"' '"' ` ` - - set buffer lintcmd '/etc/xdg/kak/autoload/lint/nix.sh' - set buffer formatcmd "nixpkgs-fmt" - - hook buffer BufWritePre .* %{ - format - lint - } -} diff --git a/profiles/develop/kakoune/lint/nix.sh b/profiles/develop/kakoune/lint/nix.sh deleted file mode 100755 index f69726c..0000000 --- a/profiles/develop/kakoune/lint/nix.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env zsh - -nix-linter -W all $1 2>&1 | < /dev/stdin > /tmp/lint.out -if head -1 /tmp/lint.out | grep Failure &> /dev/null; then - sed -n 2p /tmp/lint.out | tr '\n' ' ' - printf "error: " - awk 'NR>5 {printf "%s; ", $0}' /tmp/lint.out -else - awk '{$(NF-1)=""; print $NF ": warning: " $0}' /tmp/lint.out > /tmp/lint.2 - awk '{$NF="";gsub(/-[0-9]*:[0-9]*:*/, ":"); print $0}' /tmp/lint.2 -fi -rm -f /tmp/lint.out -rm -f /tmp/lint.2 diff --git a/profiles/develop/kakoune/lsp/c.kak b/profiles/develop/kakoune/lsp/c.kak deleted file mode 100644 index d080b63..0000000 --- a/profiles/develop/kakoune/lsp/c.kak +++ /dev/null @@ -1,3 +0,0 @@ -hook -group lsp global WinSetOption filetype=(c|cpp) %{ - lsp-enable-window -} diff --git a/profiles/develop/kakoune/lsp/common.kak b/profiles/develop/kakoune/lsp/common.kak deleted file mode 100644 index c2f55df..0000000 --- a/profiles/develop/kakoune/lsp/common.kak +++ /dev/null @@ -1,14 +0,0 @@ -eval %sh{kak-lsp --kakoune -s $kak_session} -hook -group lsp global WinSetOption filetype=(elm|rust|c|cpp|python|dhall|haskell) %{ - lsp-auto-hover-enable - - # easily enter lsp mode - map -docstring "language-server mode" buffer user l ': enter-user-mode lsp' - - set buffer lsp_hover_anchor true - set buffer lsp_auto_highlight_references true - - hook buffer BufWritePre .* %{ - lsp-formatting - } -} diff --git a/profiles/develop/kakoune/lsp/dhall.kak b/profiles/develop/kakoune/lsp/dhall.kak deleted file mode 100644 index 3206482..0000000 --- a/profiles/develop/kakoune/lsp/dhall.kak +++ /dev/null @@ -1,3 +0,0 @@ -hook -group lsp global WinSetOption filetype=dhall %{ - lsp-enable-window -} diff --git a/profiles/develop/kakoune/lsp/elm.kak b/profiles/develop/kakoune/lsp/elm.kak deleted file mode 100644 index 43dad30..0000000 --- a/profiles/develop/kakoune/lsp/elm.kak +++ /dev/null @@ -1,5 +0,0 @@ -# elm formating is currently broken in els so use formatcmd as workaround -hook -group lsp global WinSetOption filetype=elm %{ - set buffer formatcmd "elm-format --stdin --yes --elm-version 0.19" - lsp-enable-window -} diff --git a/profiles/develop/kakoune/lsp/haskell.kak b/profiles/develop/kakoune/lsp/haskell.kak deleted file mode 100644 index ff927a3..0000000 --- a/profiles/develop/kakoune/lsp/haskell.kak +++ /dev/null @@ -1,3 +0,0 @@ -hook -group lsp global WinSetOption filetype=haskell %{ - lsp-enable-window -} diff --git a/profiles/develop/kakoune/lsp/python.kak b/profiles/develop/kakoune/lsp/python.kak deleted file mode 100644 index 26b4e3b..0000000 --- a/profiles/develop/kakoune/lsp/python.kak +++ /dev/null @@ -1,3 +0,0 @@ -hook -group lsp global WinSetOption filetype=python %{ - lsp-enable-window -} diff --git a/profiles/develop/kakoune/lsp/rust.kak b/profiles/develop/kakoune/lsp/rust.kak deleted file mode 100644 index 6c095bd..0000000 --- a/profiles/develop/kakoune/lsp/rust.kak +++ /dev/null @@ -1,10 +0,0 @@ -hook -group lsp global WinSetOption filetype=rust %{ -# racer.kak conflicts with rls completion; keep before lsp-enable - racer-disable-autocomplete -# remove apostrophe from auto closing pairs; annoying for rust lifetimes - set buffer auto_pairs ( ) { } [ ] '"' '"' ` ` - - lsp-enable-window - - set buffer lsp_server_configuration rust.clippy_preference="on" -} diff --git a/profiles/develop/kakoune/plugins/auto-pairs.kak b/profiles/develop/kakoune/plugins/auto-pairs.kak deleted file mode 100644 index e0a5d6b..0000000 --- a/profiles/develop/kakoune/plugins/auto-pairs.kak +++ /dev/null @@ -1,6 +0,0 @@ -hook global WinCreate .* %{ - auto-pairs-enable -} - -map global user s -docstring 'Surround' ': auto-pairs-surround ' -map global user S -docstring 'Surround++' ': auto-pairs-surround _ _ * *' diff --git a/profiles/develop/kakoune/plugins/buffer.kak b/profiles/develop/kakoune/plugins/buffer.kak deleted file mode 100644 index fe1b438..0000000 --- a/profiles/develop/kakoune/plugins/buffer.kak +++ /dev/null @@ -1,4 +0,0 @@ -hook global WinDisplay .* info-buffers - -map global user b ':enter-buffers-mode' -docstring 'buffers…' -map global user B ':enter-user-mode -lock buffers' -docstring 'buffers (lock)…' diff --git a/profiles/develop/kakoune/plugins/fzf.kak b/profiles/develop/kakoune/plugins/fzf.kak deleted file mode 100644 index aa2be84..0000000 --- a/profiles/develop/kakoune/plugins/fzf.kak +++ /dev/null @@ -1 +0,0 @@ -map -docstring "fzf-mode" global normal ': fzf-mode' diff --git a/profiles/develop/kakoune/plugins/git.kak b/profiles/develop/kakoune/plugins/git.kak deleted file mode 100644 index 3181562..0000000 --- a/profiles/develop/kakoune/plugins/git.kak +++ /dev/null @@ -1,17 +0,0 @@ -## -## git.kak by lenormf -## - -# http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html -# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾ - -# Faces that highlight text that overflows the following limits: -# - title: 50 characters -# - body: 72 characters -set-face global GitOverflowTitle yellow -set-face global GitOverflowBody yellow - -hook -group git-commit-highlight global WinSetOption filetype=git-(commit|rebase) %{ - add-highlighter window/git-commit-highlight/ regex "^\h*[^#\s][^\n]{71}([^\n]+)" 1:GitOverflowBody - add-highlighter window/git-commit-highlight/ regex "\A[\s\n]*[^#\s][^\n]{49}([^\n]+)" 1:GitOverflowTitle -} diff --git a/profiles/develop/kakoune/plugins/kakboard.kak b/profiles/develop/kakoune/plugins/kakboard.kak deleted file mode 100644 index acf0c7f..0000000 --- a/profiles/develop/kakoune/plugins/kakboard.kak +++ /dev/null @@ -1,182 +0,0 @@ - -declare-option -docstring 'command to copy to clipboard' \ - str kakboard_copy_cmd - -declare-option -docstring 'command to paste from clipboard' \ - str kakboard_paste_cmd - -declare-option -docstring 'keys to pull clipboard for' \ - str-list kakboard_paste_keys p P R - -declare-option -docstring 'keys to copy to clipboard' \ - str-list kakboard_copy_keys y c d - -declare-option -hidden bool kakboard_enabled false - -define-command -docstring 'copy system clipboard into the " register' \ - kakboard-pull-clipboard %{ evaluate-commands %sh{ - # Shell expansions are stripped of new lines, so the output of the - # command has to be wrapped in quotes (and its quotes escaped) - # - # (All of this quoting and escaping really messes up kakoune's syntax - # highlighter) - if test -n "$kak_opt_kakboard_paste_cmd"; then - printf 'set-register dquote %s' \ - "'$($kak_opt_kakboard_paste_cmd | sed -e "s/'/''/g"; echo \')" - else - echo "echo -debug 'kakboard: kakboard_paste_cmd not set'" - fi -}} - -define-command -docstring 'copy system clipboard if current register is unset' \ - kakboard-pull-if-unset %{ evaluate-commands %sh{ - if test -z "$kak_register"; then - echo "kakboard-pull-clipboard" - fi -}} - -# Pull the clipboard and execute the key with the same context -define-command -docstring 'copy system clipboard then execute keys' \ - kakboard-with-pull-clipboard -params 1 %{ - kakboard-pull-if-unset - evaluate-commands %sh{ - if test -n "$kak_register"; then - register="\"$kak_register" - fi - echo "execute-keys -with-hooks -save-regs '' '$register$kak_count$1'" - } -} - -define-command -docstring 'set system clipboard from the " register' \ - kakboard-push-clipboard %{ nop %sh{ - # The copy command is executed and forked in a subshell because some - # commands (looking at you, xclip and wl-copy) block when executed by - # kakoune normally - if test -n "$kak_opt_kakboard_copy_cmd"; then - printf '%s' "$kak_main_reg_dquote" \ - | ($kak_opt_kakboard_copy_cmd) >/dev/null 2>&1 & - else - echo "echo -debug 'kakboard: kakboard_copy_cmd not set'" - fi -}} - -define-command -docstring 'set system clipboard if current register is unset' \ - kakboard-push-if-unset %{ evaluate-commands %sh{ - if test -z "$kak_register"; then - echo "kakboard-push-clipboard" - fi -}} - -# Set the clipboard and execute the key with the same context -define-command -docstring 'execute keys then set system clipboard' \ - kakboard-with-push-clipboard -params 1 %{ - evaluate-commands %sh{ - if test -n "$kak_register"; then - register="\"$kak_register" - fi - # Don't preserve registers since we want the same behavior as just - # executing the keys (and don't want to preseve the " register) - echo "execute-keys -with-hooks -save-regs '' '$register$kak_count$1'" - } - # Has to be outside of the sh expansion so that the register environment - # variable will update - kakboard-push-if-unset -} - -define-command -hidden kakboard-autodetect %{ - evaluate-commands %sh{ - # Don't override if there are already commands - if test -n "$kak_opt_kakboard_copy_cmd" -o \ - -n "$kak_opt_kakboard_paste_cmd" - then - exit - fi - - copy= - paste= - case $(uname -s) in - Darwin) - copy="pbcopy" - paste="pbpaste" - ;; - - *) - if test -n "$WAYLAND_DISPLAY" \ - && command -v wl-copy >/dev/null \ - && command -v wl-paste >/dev/null - then - # wl-clipboard - copy="wl-copy --foreground" - paste="wl-paste --no-newline" - elif test -n "$DISPLAY" && command -v xsel >/dev/null; then - # xsel - copy="xsel --input --clipboard" - paste="xsel --output --clipboard" - elif test -n "$DISPLAY" && command -v xclip >/dev/null; then - # xclip - copy="xclip -in -selection clipboard" - paste="xclip -out -selection clipboard" - fi - ;; - esac - - echo "set-option global kakboard_copy_cmd '$copy'" - echo "set-option global kakboard_paste_cmd '$paste'" - } -} - -define-command -docstring 'enable clipboard integration' kakboard-enable %{ - set-option window kakboard_enabled true - kakboard-autodetect - - evaluate-commands %sh{ - if test -z "$kak_opt_kakboard_copy_cmd" -o \ - -z "$kak_opt_kakboard_paste_cmd" - then - echo "echo -debug 'kakboard: Could not auto-detect clipboard commands. Please set them explicitly.'" - fi - - # Still make the bindings so that they can be set later - - eval set -- "$kak_quoted_opt_kakboard_paste_keys" - while test $# -gt 0; do - escaped=$(echo "$1" | sed -e 's//') - echo map global normal "$1" \ - "': kakboard-with-pull-clipboard $escaped'" - shift - done - - eval set -- "$kak_quoted_opt_kakboard_copy_keys" - while test $# -gt 0; do - escaped=$(echo "$1" | sed -e 's//') - echo map global normal "$1" \ - "': kakboard-with-push-clipboard $escaped'" - shift - done - } -} - -define-command -docstring 'disable clipboard integration' kakboard-disable %{ - set-option window kakboard_enabled false - - remove-hooks window kakboard - - evaluate-commands %sh{ - eval set -- "$kak_quoted_opt_kakboard_paste_keys" \ - "$kak_quoted_opt_kakboard_copy_keys" - while test $# -gt 0; do - echo unmap global normal "$1" - shift - done - } -} - -define-command -docstring 'toggle clipboard integration' kakboard-toggle %{ - evaluate-commands %sh{ - if test "$kak_opt_kakboard_enabled" = true; then - echo "kakboard-disable" - else - echo "kakboard-enable" - fi - } -} diff --git a/profiles/develop/kakoune/plugins/vertical-selection.kak b/profiles/develop/kakoune/plugins/vertical-selection.kak deleted file mode 100644 index eeb68b3..0000000 --- a/profiles/develop/kakoune/plugins/vertical-selection.kak +++ /dev/null @@ -1,3 +0,0 @@ -map -docstring "vertical selection down" global user v ': vertical-selection-down' -map -docstring "vertical selection up" global user ': vertical-selection-up' -map -docstring "vertical selection both" global user V ': vertical-selection-up-and-down' diff --git a/profiles/develop/python/default.nix b/profiles/develop/python/default.nix deleted file mode 100644 index 58c12c3..0000000 --- a/profiles/develop/python/default.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ pkgs, ... }: -let inherit (pkgs) python3Packages; -in -{ - environment.systemPackages = - let - packages = pythonPackages: - with pythonPackages; [ - numpy - pandas - ptpython - requests - scipy - ]; - - python = pkgs.python3.withPackages packages; - - in - [ python ]; - environment.sessionVariables = { - PYTHONSTARTUP = - let - startup = pkgs.writers.writePython3 "ptpython.py" - { - libraries = with python3Packages; [ ptpython ]; - } '' - from __future__ import unicode_literals - - from pygments.token import Token - - from ptpython.layout import CompletionVisualisation - - import sys - - ${builtins.readFile ./ptconfig.py} - - try: - from ptpython.repl import embed - except ImportError: - print("ptpython is not available: falling back to standard prompt") - else: - sys.exit(embed(globals(), locals(), configure=configure)) - ''; - in - "${startup}"; - }; -} diff --git a/profiles/develop/python/ptconfig.py b/profiles/develop/python/ptconfig.py deleted file mode 100644 index 64a4bde..0000000 --- a/profiles/develop/python/ptconfig.py +++ /dev/null @@ -1,164 +0,0 @@ -__all__ = ("configure",) - - -def configure(repl): - """ - Configuration method. This is called during the start-up of ptpython. - :param repl: `PythonRepl` instance. - """ - # Show function signature (bool). - repl.show_signature = True - - # Show docstring (bool). - repl.show_docstring = True - - # Show the "[Meta+Enter] Execute" message when pressing [Enter] only - # inserts a newline instead of executing the code. - repl.show_meta_enter_message = True - - # Show completions. (NONE, POP_UP, MULTI_COLUMN or TOOLBAR) - repl.completion_visualisation = CompletionVisualisation.POP_UP - - # When CompletionVisualisation.POP_UP has been chosen, use this - # scroll_offset in the completion menu. - repl.completion_menu_scroll_offset = 0 - - # Show line numbers (when the input contains multiple lines.) - repl.show_line_numbers = False - - # Show status bar. - repl.show_status_bar = True - - # When the sidebar is visible, also show the help text. - repl.show_sidebar_help = True - - # Swap light/dark colors on or off - repl.swap_light_and_dark = False - - # Highlight matching parethesis. - repl.highlight_matching_parenthesis = True - - # Line wrapping. (Instead of horizontal scrolling.) - repl.wrap_lines = True - - # Mouse support. - repl.enable_mouse_support = True - - # Complete while typing. (Don't require tab before the - # completion menu is shown.) - repl.complete_while_typing = True - - # Fuzzy and dictionary completion. - repl.enable_fuzzy_completion = False - repl.enable_dictionary_completion = False - - # Vi mode. - repl.vi_mode = True - - # Paste mode. (When True, don't insert whitespace after new line.) - repl.paste_mode = False - - # Use the classic prompt. (Display '>>>' instead of 'In [1]'.) - repl.prompt_style = "classic" # 'classic' or 'ipython' - - # Don't insert a blank line after the output. - repl.insert_blank_line_after_output = True - - # History Search. - # When True, going back in history will filter the history on the records - # starting with the current input. (Like readline.) - # Note: When enable, please disable the `complete_while_typing` option. - # otherwise, when there is a completion available, the arrows will - # browse through the available completions instead of the history. - repl.enable_history_search = False - - # Enable auto suggestions. (Pressing right arrow will complete the input, - # based on the history.) - repl.enable_auto_suggest = False - - # Enable open-in-editor. Pressing C-X C-E in emacs mode or 'v' in - # Vi navigation mode will open the input in the current editor. - repl.enable_open_in_editor = True - - # Enable system prompt. Pressing meta-! will display the system prompt. - # Also enables Control-Z suspend. - repl.enable_system_bindings = True - - # Ask for confirmation on exit. - repl.confirm_exit = True - - # Enable input validation. (Don't try to execute when the input contains - # syntax errors.) - repl.enable_input_validation = True - - # Use this colorscheme for the code. - repl.use_code_colorscheme("monokai") - - # Set color depth (keep in mind that not all terminals support true color). - - # repl.color_depth = 'DEPTH_1_BIT' # Monochrome. - # repl.color_depth = 'DEPTH_4_BIT' # ANSI colors only. - # repl.color_depth = "DEPTH_8_BIT" # The default, 256 colors. - repl.color_depth = 'DEPTH_24_BIT' # True color. - - # Syntax. - repl.enable_syntax_highlighting = True - - # Install custom colorscheme named 'my-colorscheme' and use it. - """ - repl.install_ui_colorscheme('my-colorscheme', _custom_ui_colorscheme) - repl.use_ui_colorscheme('my-colorscheme') - """ - - # Add custom key binding for PDB. - """ - @repl.add_key_binding(Keys.ControlB) - def _(event): - ' Pressing Control-B will insert "pdb.set_trace()" ' - event.cli.current_buffer.insert_text('\nimport pdb; pdb.set_trace()\n') - """ - - # Typing ControlE twice should also execute the current command. - # (Alternative for Meta-Enter.) - """ - @repl.add_key_binding(Keys.ControlE, Keys.ControlE) - def _(event): - event.current_buffer.validate_and_handle() - """ - - # Typing 'jj' in Vi Insert mode, should send escape. (Go back to navigation - # mode.) - """ - @repl.add_key_binding('j', 'j', filter=ViInsertMode()) - def _(event): - " Map 'jj' to Escape. " - event.cli.key_processor.feed(KeyPress(Keys.Escape)) - """ - - # Custom key binding for some simple autocorrection while typing. - """ - corrections = { - 'impotr': 'import', - 'pritn': 'print', - } - @repl.add_key_binding(' ') - def _(event): - ' When a space is pressed. Check & correct word before cursor. ' - b = event.cli.current_buffer - w = b.document.get_word_before_cursor() - if w is not None: - if w in corrections: - b.delete_before_cursor(count=len(w)) - b.insert_text(corrections[w]) - b.insert_text(' ') - """ - - -# Custom colorscheme for the UI. See `ptpython/layout.py` and -# `ptpython/style.py` for all possible tokens. -_custom_ui_colorscheme = { - # Blue prompt. - Token.Layout.Prompt: "bg:#eeeeff #000000 bold", - # Make the status toolbar red. - Token.Toolbar.Status: "bg:#ff0000 #000000", -} diff --git a/profiles/develop/tmux/default.nix b/profiles/develop/tmux/default.nix deleted file mode 100644 index 0d9ef45..0000000 --- a/profiles/develop/tmux/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ lib, pkgs, ... }: -let - inherit (builtins) readFile concatStringsSep; - - inherit (lib) removePrefix; - - pluginConf = plugins: - concatStringsSep "\n\n" (map - (plugin: - let name = removePrefix "tmuxplugin-" plugin.pname; - in "run-shell ${plugin}/share/tmux-plugins/${name}/${name}.tmux") - plugins - ); - - plugins = with pkgs.tmuxPlugins; [ - copycat - open - resurrect - yank - vim-tmux-navigator - ]; -in -{ - environment.shellAliases = { tx = "tmux new-session -A -s $USER"; }; - - programs.tmux = { - enable = true; - aggressiveResize = true; - escapeTime = 10; - historyLimit = 5000; - keyMode = "vi"; - shortcut = "a"; - terminal = "tmux-256color"; - baseIndex = 1; - extraConfig = '' - ${readFile ./tmuxline.conf} - - ${readFile ./tmux.conf} - - ${pluginConf plugins} - ''; - }; -} diff --git a/profiles/develop/tmux/tmux.conf b/profiles/develop/tmux/tmux.conf deleted file mode 100644 index 59431da..0000000 --- a/profiles/develop/tmux/tmux.conf +++ /dev/null @@ -1,57 +0,0 @@ -# Enable mouse mode (tmux 2.1 and above) -set -g mouse on - -# autmatic window name -setw -g automatic-rename on - -# only update status line once per minute -set -g status-interval 60 - -# Enable focus events -set -g focus-events on - -# truecolor in xterm -set -ga terminal-overrides ",*col*:Tc" - -# Start a non login shell -set -g default-command "${SHELL}" - -# pane movement - -# Grab pane from the target window & joins to current, -bind-key j command-prompt -p "join pane from:" "join-pane -s '%%'" -# does reverse. -bind-key s command-prompt -p "send pane to:" "join-pane -t '%%'" - -# Key binds -bind -n ^_ send-keys 'C-l' -bind-key -r C-h select-window -t :- -bind-key -r C-l select-window -t :+ -bind-key C-a last-window -bind-key | split-window -h -bind-key - split-window -v -bind-key _ split-window -v -p 38 -bind-key \ split-window -h -p 38 -bind-key b break-pane -d -bind-key x kill-pane -bind-key X kill-window -bind-key q confirm-before kill-session -bind-key Q confirm-before kill-server -bind-key , previous-window # < -bind-key . next-window # > -bind-key -r < swap-window -t :- -bind-key -r > swap-window -t :+ -bind-key n command-prompt 'rename-window %%' -bind-key N command-prompt 'rename-session %%' -bind-key Escape copy-mode -u -bind-key Up copy-mode -u -bind-key r source-file ~/.tmux.conf -bind-key R refresh-client -bind-key S set-option status -# Resize panes with alt-jkhl -bind-key -n C-M-j resize-pane -D -bind-key -n C-M-k resize-pane -U -bind-key -n C-M-h resize-pane -L -bind-key -n C-M-l resize-pane -R - -bind -T copy-mode-vi 'v' send-keys -X begin-selection diff --git a/profiles/develop/tmux/tmuxline.conf b/profiles/develop/tmux/tmuxline.conf deleted file mode 100644 index ef273da..0000000 --- a/profiles/develop/tmux/tmuxline.conf +++ /dev/null @@ -1,26 +0,0 @@ -# statusbar configuration -set -g status-justify "left" -set -g status "on" -set -g status-style "none" -set -g message-command-style bg="colour31" -set -g status-left-length "100" -set -g pane-active-border-style fg="colour254" -set -g status-bg "colour234" -set -g message-command-style fg="colour231" -set -g pane-border-style fg="colour240" -set -g message-style bg="colour31" -set -g status-left-style "none" -set -g status-right-style "none" -set -g status-right-length "100" -set -g message-style fg="colour231" -setw -g window-status-style fg="colour250" -setw -g window-status-style "none" -setw -g window-status-activity-style bg="colour234" -setw -g window-status-activity-style "none" -setw -g window-status-activity-style fg="colour250" -setw -g window-status-separator "" -setw -g window-status-style bg="colour234" -set -g status-left "#[fg=colour16,bg=colour254,bold] #S #[fg=colour254,bg=colour234,nobold,nounderscore,noitalics]" -set -g status-right "#[fg=colour236,bg=colour234,nobold,nounderscore,noitalics]#[fg=colour247,bg=colour236] %l:%M%p #[fg=colour252,bg=colour236,nobold,nounderscore,noitalics]#[fg=colour235,bg=colour252] #h " -setw -g window-status-format "#[fg=colour244,bg=colour234] #I #[fg=colour250,bg=colour234] #W " -setw -g window-status-current-format "#[fg=colour234,bg=colour31,nobold,nounderscore,noitalics]#[fg=colour117,bg=colour31] #I #[fg=colour231,bg=colour31,bold] #W #[fg=colour31,bg=colour234,nobold,nounderscore,noitalics]" diff --git a/profiles/develop/zsh/cdr-skim.zsh b/profiles/develop/zsh/cdr-skim.zsh deleted file mode 100644 index 4149da0..0000000 --- a/profiles/develop/zsh/cdr-skim.zsh +++ /dev/null @@ -1 +0,0 @@ -while read line; do line=${(Q)line}; [[ -d $line ]] && echo $line; done < $HOME/.cache/zsh-cdr/recent-dirs diff --git a/profiles/develop/zsh/cdr.zsh b/profiles/develop/zsh/cdr.zsh deleted file mode 100644 index 0b88918..0000000 --- a/profiles/develop/zsh/cdr.zsh +++ /dev/null @@ -1,11 +0,0 @@ -if [[ -z "$ZSH_CDR_DIR" ]]; then - ZSH_CDR_DIR=${XDG_CACHE_HOME:-$HOME/.cache}/zsh-cdr -fi -mkdir -p $ZSH_CDR_DIR -autoload -Uz chpwd_recent_dirs cdr -autoload -U add-zsh-hook -add-zsh-hook chpwd chpwd_recent_dirs -zstyle ':chpwd:*' recent-dirs-file $ZSH_CDR_DIR/recent-dirs -zstyle ':chpwd:*' recent-dirs-max 1000 -# fall through to cd -zstyle ':chpwd:*' recent-dirs-default yes diff --git a/profiles/develop/zsh/default.nix b/profiles/develop/zsh/default.nix deleted file mode 100644 index 745c49f..0000000 --- a/profiles/develop/zsh/default.nix +++ /dev/null @@ -1,150 +0,0 @@ -{ lib, pkgs, ... }: -let - inherit (builtins) concatStringsSep; - - inherit (lib) fileContents; - -in -{ - users.defaultUserShell = pkgs.zsh; - - environment = { - sessionVariables = - let fd = "${pkgs.fd}/bin/fd -H"; - in - { - BAT_PAGER = "less"; - SKIM_ALT_C_COMMAND = - let - alt_c_cmd = pkgs.writeScriptBin "cdr-skim.zsh" '' - #!${pkgs.zsh}/bin/zsh - ${fileContents ./cdr-skim.zsh} - ''; - in - "${alt_c_cmd}/bin/cdr-skim.zsh"; - SKIM_DEFAULT_COMMAND = fd; - SKIM_CTRL_T_COMMAND = fd; - }; - - shellAliases = { - cat = "${pkgs.bat}/bin/bat"; - - df = "df -h"; - du = "du -h"; - - ls = "exa"; - l = "ls -lhg --git"; - la = "l -a"; - t = "l -T"; - ta = "la -T"; - - ps = "${pkgs.procs}/bin/procs"; - - rz = "exec zsh"; - }; - - systemPackages = with pkgs; [ - bat - bzip2 - devshell.cli - exa - gitAndTools.hub - gzip - lrzip - p7zip - procs - skim - unrar - unzip - xz - zsh-completions - ]; - }; - - programs.zsh = { - enable = true; - - enableGlobalCompInit = false; - - histSize = 10000; - - setOptions = [ - "extendedglob" - "incappendhistory" - "sharehistory" - "histignoredups" - "histfcntllock" - "histreduceblanks" - "histignorespace" - "histallowclobber" - "autocd" - "cdablevars" - "nomultios" - "pushdignoredups" - "autocontinue" - "promptsubst" - ]; - - promptInit = '' - eval "$(${pkgs.starship}/bin/starship init zsh)" - ''; - - interactiveShellInit = - let - zshrc = fileContents ./zshrc; - - sources = with pkgs; [ - ./cdr.zsh - "${skim}/share/skim/completion.zsh" - "${oh-my-zsh}/share/oh-my-zsh/plugins/sudo/sudo.plugin.zsh" - "${oh-my-zsh}/share/oh-my-zsh/plugins/extract/extract.plugin.zsh" - "${zsh-you-should-use}/share/zsh/plugins/you-should-use/you-should-use.plugin.zsh" - "${zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" - "${zsh-history-substring-search}/share/zsh-history-substring-search/zsh-history-substring-search.zsh" - ]; - - source = map (source: "source ${source}") sources; - - functions = pkgs.stdenv.mkDerivation { - name = "zsh-functions"; - src = ./functions; - - ripgrep = "${pkgs.ripgrep}"; - man = "${pkgs.man}"; - exa = "${pkgs.exa}"; - - installPhase = - let basename = "\${file##*/}"; - in - '' - mkdir $out - - for file in $src/*; do - substituteAll $file $out/${basename} - chmod 755 $out/${basename} - done - ''; - }; - - plugins = concatStringsSep "\n" ([ - "${pkgs.any-nix-shell}/bin/any-nix-shell zsh --info-right | source /dev/stdin" - ] ++ source); - - in - '' - ${plugins} - - fpath+=( ${functions} ) - autoload -Uz ${functions}/*(:t) - - ${zshrc} - - eval "$(${pkgs.direnv}/bin/direnv hook zsh)" - eval $(${pkgs.gitAndTools.hub}/bin/hub alias -s) - source ${pkgs.skim}/share/skim/key-bindings.zsh - - # needs to remain at bottom so as not to be overwritten - bindkey jj vi-cmd-mode - ''; - }; -} diff --git a/profiles/develop/zsh/functions/chext b/profiles/develop/zsh/functions/chext deleted file mode 100644 index 52905a9..0000000 --- a/profiles/develop/zsh/functions/chext +++ /dev/null @@ -1,5 +0,0 @@ -[[ -z $3 ]] || return 1 -file=$1 -ext=$2 -new="${file:r}.${ext}" -mv $file $new diff --git a/profiles/develop/zsh/functions/exa b/profiles/develop/zsh/functions/exa deleted file mode 100644 index 0e2be3e..0000000 --- a/profiles/develop/zsh/functions/exa +++ /dev/null @@ -1,6 +0,0 @@ -# pipe exa into PAGER with colors -if [[ -t 1 && -n $PAGER ]]; then - @exa@/bin/exa --color=always $@ | $PAGER -else - @exa@/bin/exa $@ -fi diff --git a/profiles/develop/zsh/functions/i b/profiles/develop/zsh/functions/i deleted file mode 100644 index cde8d93..0000000 --- a/profiles/develop/zsh/functions/i +++ /dev/null @@ -1,12 +0,0 @@ -RED='\033[0;31m' -NC='\033[0m' - -# needs one arguement or exit -[[ -n $2 || -z $1 ]] && { - print -u2 \ - "${RED}error:${NC} takes exactly one package as an arguement" - - return 1 -} - -nix profile install "nixpkgs#$1" diff --git a/profiles/develop/zsh/functions/man b/profiles/develop/zsh/functions/man deleted file mode 100644 index 35dc049..0000000 --- a/profiles/develop/zsh/functions/man +++ /dev/null @@ -1,8 +0,0 @@ -# colorful man pages -LESS_TERMCAP_md=$'\e[01;31m' \ -LESS_TERMCAP_me=$'\e[0m' \ -LESS_TERMCAP_se=$'\e[0m' \ -LESS_TERMCAP_so=$'\e[01;44;33m' \ -LESS_TERMCAP_ue=$'\e[0m' \ -LESS_TERMCAP_us=$'\e[01;32m' \ -@man@/bin/man "$@" diff --git a/profiles/develop/zsh/functions/mcd b/profiles/develop/zsh/functions/mcd deleted file mode 100644 index bd28cf3..0000000 --- a/profiles/develop/zsh/functions/mcd +++ /dev/null @@ -1,2 +0,0 @@ -# mkdir & cd to it -mkdir -p "$1" && cd "$1" diff --git a/profiles/develop/zsh/functions/rg b/profiles/develop/zsh/functions/rg deleted file mode 100644 index 61e326e..0000000 --- a/profiles/develop/zsh/functions/rg +++ /dev/null @@ -1,6 +0,0 @@ -# pipe rg into PAGER with colors -if [[ -t 1 && -n $PAGER ]]; then - @ripgrep@/bin/rg -p $@ | $PAGER -else - @ripgrep@/bin/rg $@ -fi diff --git a/profiles/develop/zsh/functions/rnm b/profiles/develop/zsh/functions/rnm deleted file mode 100644 index 766bc9c..0000000 --- a/profiles/develop/zsh/functions/rnm +++ /dev/null @@ -1,4 +0,0 @@ -[[ -z $3 ]] || return 1 -head=${1:h} -name="${head}/${2}" -mv $1 $name diff --git a/profiles/develop/zsh/zshrc b/profiles/develop/zsh/zshrc deleted file mode 100644 index 5c09ceb..0000000 --- a/profiles/develop/zsh/zshrc +++ /dev/null @@ -1,58 +0,0 @@ -# useful functions -autoload -Uz zmv zcalc zargs url-quote-magic bracketed-paste-magic -zle -N self-insert url-quote-magic -zle -N bracketed-paste bracketed-paste-magic - -# tilde directories -hash -d \ - nixos=/etc/nixos \ - dl=~/Downloads \ - git=~/git - -hash -d \ - github=~git/github.com \ - gitlab=~git/gitlab.com - - -# key binds -bindkey -v '^?' backward-delete-char -bindkey '^[OA' history-substring-search-up -bindkey '^[OB' history-substring-search-down -bindkey -M vicmd 'k' history-substring-search-up -bindkey -M vicmd 'j' history-substring-search-down - -# if in tmux launch skim in tmux pane -[[ ${+TMUX} == 1 ]] \ - && SKIM_TMUX=1 - -#load compinit -autoload -Uz compinit - -if [[ -f ~/.zcompdump ]]; then - typeset -i updated_at=$(date +'%j' -r ~/.zcompdump \ - || stat -f '%Sm' -t '%j' ~/.zcompdump) - - # save time if completion cache has been update recently - if [ $(date +'%j') != $updated_at ]; then - compinit -u - else - compinit -C - fi -else - compinit -C -fi - -# Case insens only when no case match; after all completions loaded -zstyle ':completion:*' matcher-list \ - "" 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*' - -# Auto rehash for new binaries -zstyle ':completion:*' rehash true - - -# remove duplicates from paths -typeset -U path -typeset -U fpath - -# keep shell state frozen -ttyctl -f diff --git a/profiles/graphical/default.nix b/profiles/graphical/default.nix deleted file mode 100644 index 5e23211..0000000 --- a/profiles/graphical/default.nix +++ /dev/null @@ -1,88 +0,0 @@ -{ pkgs, ... }: -let inherit (builtins) readFile; -in -{ - imports = [ ./sway ../develop ./xmonad ../network ./im ]; - - hardware.opengl.enable = true; - hardware.opengl.driSupport = true; - hardware.pulseaudio.enable = true; - - boot = { - tmpOnTmpfs = true; - - kernel.sysctl."kernel.sysrq" = 1; - - }; - - environment = { - - etc = { - "xdg/gtk-3.0/settings.ini" = { - text = '' - [Settings] - gtk-icon-theme-name=Papirus - gtk-theme-name=Adapta - gtk-cursor-theme-name=Adwaita - ''; - mode = "444"; - }; - }; - - sessionVariables = { - # Theme settings - QT_QPA_PLATFORMTHEME = "gtk2"; - - GTK2_RC_FILES = - let - gtk = '' - gtk-icon-theme-name="Papirus" - gtk-cursor-theme-name="Adwaita" - ''; - in - [ - ("${pkgs.writeText "iconrc" "${gtk}"}") - "${pkgs.adapta-gtk-theme}/share/themes/Adapta/gtk-2.0/gtkrc" - "${pkgs.gnome3.gnome-themes-extra}/share/themes/Adwaita/gtk-2.0/gtkrc" - ]; - }; - - systemPackages = with pkgs; [ - adapta-gtk-theme - cursor - dzen2 - feh - ffmpeg-full - gnome3.adwaita-icon-theme - gnome3.networkmanagerapplet - gnome-themes-extra - imagemagick - imlib2 - librsvg - libsForQt5.qtstyleplugins - manpages - papirus-icon-theme - pulsemixer - qt5.qtgraphicaleffects - sddm-chili - stdmanpages - xsel - zathura - ]; - }; - - services.xbanish.enable = true; - - services.gnome3.gnome-keyring.enable = true; - - services.xserver = { - enable = true; - - libinput.enable = true; - - displayManager.sddm = { - enable = true; - theme = "chili"; - }; - }; -} diff --git a/profiles/graphical/games/default.nix b/profiles/graphical/games/default.nix deleted file mode 100644 index 01ac503..0000000 --- a/profiles/graphical/games/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ pkgs, ... }: { - imports = [ ./udev.nix ]; - environment.systemPackages = with pkgs; [ - retroarchBare - steam-run - pcsx2 - qjoypad - ]; - - services.wii-u-gc-adapter.enable = true; - - # fps games on laptop need this - services.xserver.libinput.disableWhileTyping = false; - - # Launch steam from display managers - services.xserver.windowManager.steam = { enable = true; }; - - # 32-bit support needed for steam - hardware.opengl.driSupport32Bit = true; - hardware.pulseaudio.support32Bit = true; - - hardware.steam-hardware.enable = true; - - # better for steam proton games - systemd.extraConfig = "DefaultLimitNOFILE=1048576"; - - # improve wine performance - environment.sessionVariables = { WINEDEBUG = "-all"; }; -} diff --git a/profiles/graphical/games/udev.nix b/profiles/graphical/games/udev.nix deleted file mode 100644 index bdaee32..0000000 --- a/profiles/graphical/games/udev.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ - # correct controller support for steam - services.udev.extraRules = '' - # This rule is needed for basic functionality of the controller in Steam and keyboard/mouse emulation - SUBSYSTEM=="usb", ATTRS{idVendor}=="28de", MODE="0666" - - # This rule is necessary for gamepad emulation - KERNEL=="uinput", MODE="0660", GROUP="input", OPTIONS+="static_node=uinput" - - KERNEL=="js*", MODE="0660", GROUP="input" - - # Valve HID devices over USB hidraw - KERNEL=="hidraw*", ATTRS{idVendor}=="28de", MODE="0666" - - # Valve HID devices over bluetooth hidraw - KERNEL=="hidraw*", KERNELS=="*28DE:*", MODE="0666" - - # DualShock 4 over USB hidraw - KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="05c4", MODE="0666" - - # DualShock 4 wireless adapter over USB hidraw - KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0ba0", MODE="0666" - - # DualShock 4 Slim over USB hidraw - KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="09cc", MODE="0666" - - # DualShock 4 over bluetooth hidraw - KERNEL=="hidraw*", KERNELS=="*054C:05C4*", MODE="0666" - - # DualShock 4 Slim over bluetooth hidraw - KERNEL=="hidraw*", KERNELS=="*054C:09CC*", MODE="0666" - - # DualShock 3 controller, Bluetooth - KERNEL=="hidraw*", KERNELS=="*054C:0268*", MODE="0660", TAG+="uaccess" - - # DualShock 3 controller, USB - KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0268", MODE="0660", TAG+="uaccess" - - # Nintendo Switch Pro Controller over USB hidraw - KERNEL=="hidraw*", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="2009", MODE="0666" - - # Nintendo Switch Pro Controller over bluetooth hidraw - KERNEL=="hidraw*", KERNELS=="*057E:2009*", MODE="0666" - ''; -} diff --git a/profiles/graphical/im/default.nix b/profiles/graphical/im/default.nix deleted file mode 100644 index b4d150d..0000000 --- a/profiles/graphical/im/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ pkgs, ... }: { - environment.systemPackages = with pkgs; [ - discord - element-desktop - signal-desktop - ]; -} diff --git a/profiles/graphical/misc/volnoti.nix b/profiles/graphical/misc/volnoti.nix deleted file mode 100644 index e3d45bd..0000000 --- a/profiles/graphical/misc/volnoti.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ pkgs, ... }: -let inherit (pkgs) alsaUtils bash gnugrep volnoti; -in -pkgs.writeScript "volnoti.sh" '' - #!${bash}/bin/bash - - declare -i current=$(${alsaUtils}/bin/amixer get Master | ${gnugrep}/bin/grep -m1 -Po "[0-9]+(?=%)") - if [[ $current -gt 100 ]]; then - current=100 - fi - - - if ${alsaUtils}/bin/amixer get Master | ${gnugrep}/bin/grep -Fq "[off]"; then - ${volnoti}/bin/volnoti-show -m $current - else - ${volnoti}/bin/volnoti-show $current - fi -'' diff --git a/profiles/graphical/plex/default.nix b/profiles/graphical/plex/default.nix deleted file mode 100644 index efaf532..0000000 --- a/profiles/graphical/plex/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ ... }: { - services.plex = { - enable = true; - dataDir = "/srv/plex"; - group = "media"; - openFirewall = true; - }; - - users.groups.media.members = [ "plex" ]; -} diff --git a/profiles/graphical/qutebrowser/config.py b/profiles/graphical/qutebrowser/config.py deleted file mode 100644 index aa20f0e..0000000 --- a/profiles/graphical/qutebrowser/config.py +++ /dev/null @@ -1,276 +0,0 @@ -# Documentation: -# qute://help/configuring.html -# qute://help/settings.html - -# Disable autoconfig -config.load_autoconfig(False) - -# Require a confirmation before quitting the application. -# Type: ConfirmQuit -# Valid values: -# - always: Always show a confirmation. -# - multiple-tabs: Show a confirmation if multiple tabs are opened. -# - downloads: Show a confirmation if downloads are running -# - never: Never show a confirmation. -c.confirm_quit = ['downloads'] - -# Additional arguments to pass to Qt, without leading `--`. With -# QtWebEngine, some Chromium arguments (see -# https://peter.sh/experiments/chromium-command-line-switches/ for a -# list) will work. -# Type: List of String -c.qt.args = [ - 'enable-native-gpu-memory-buffers' -] - -# Allow websites to request geolocations. -# Type: BoolAsk -# Valid values: -# - true -# - false -# - ask -c.content.geolocation = False - -c.content.pdfjs = True - -# Value to send in the `DNT` header. When this is set to true, -# qutebrowser asks websites to not track your identity. If set to null, -# the DNT header is not sent at all. -# Type: Bool -c.content.headers.do_not_track = True - -c.content.cookies.accept = "no-3rdparty" - -c.content.canvas_reading = False - -c.content.dns_prefetch = True - -c.content.webrtc_ip_handling_policy = "default-public-interface-only" - -# Allow JavaScript to read from or write to the clipboard. With -# QtWebEngine, writing the clipboard as response to a user interaction -# is always allowed. -# Type: Bool -c.content.javascript.can_access_clipboard = False - -# Allow JavaScript to open new tabs without user interaction. -# Type: Bool -c.content.javascript.can_open_tabs_automatically = False - -# Enable JavaScript. -# Type: Bool -c.content.javascript.enabled = True - -# Enable JavaScript. -# Type: Bool -config.set('content.javascript.enabled', True, 'file://*') - -# Enable JavaScript. -# Type: Bool -config.set('content.javascript.enabled', True, 'chrome://*/*') - -# Enable JavaScript. -# Type: Bool -config.set('content.javascript.enabled', True, 'qute://*/*') - -# Allow locally loaded documents to access remote URLs. -# Type: Bool -c.content.local_content_can_access_remote_urls = False - -# Allow locally loaded documents to access other local URLs. -# Type: Bool -c.content.local_content_can_access_file_urls = True - -# Enable support for HTML 5 local storage and Web SQL. -# Type: Bool -c.content.local_storage = True - -# Enable plugins in Web pages. -# Type: Bool -c.content.plugins = False - -# Draw the background color and images also when the page is printed. -# Type: Bool -c.content.print_element_backgrounds = True - -# Open new windows in private browsing mode which does not record -# visited pages. -# Type: Bool -c.content.private_browsing = False - -# Enable WebGL. -# Type: Bool -c.content.webgl = False - -# Monitor load requests for cross-site scripting attempts. Suspicious -# scripts will be blocked and reported in the inspector's JavaScript -# console. Enabling this feature might have an impact on performance. -# Type: Bool -c.content.xss_auditing = True - -# What to display in the download filename input. -# Type: String -# Valid values: -# - path: Show only the download path. -# - filename: Show only download filename. -# - both: Show download path and filename. -c.downloads.location.suggestion = 'filename' - -# Where to show the downloaded files. -# Type: VerticalPosition -# Valid values: -# - top -# - bottom -c.downloads.position = 'top' - -# Duration (in milliseconds) to wait before removing finished downloads. -# If set to -1, downloads are never removed. -# Type: Int -c.downloads.remove_finished = 8000 - -# Automatically enter insert mode if an editable element is focused -# after loading the page. -# Type: Bool -c.input.insert_mode.auto_load = True - -# Leave insert mode if a non-editable element is clicked. -# Type: Bool -c.input.insert_mode.auto_leave = True - -# Duration (in milliseconds) to show messages in the statusbar for. Set -# to 0 to never clear messages. -# Type: Int -c.messages.timeout = 8000 - -# Enable smooth scrolling for web pages. Note smooth scrolling does not -# work with the `:scroll-px` command. -# Type: Bool -c.scrolling.smooth = True - -# Languages to use for spell checking. You can check for available -# languages and install dictionaries using scripts/dictcli.py. Run the -# script with -h/--help for instructions. -# Type: List of String -# Valid values: -# - af-ZA: Afrikaans (South Africa) -# - bg-BG: Bulgarian (Bulgaria) -# - ca-ES: Catalan (Spain) -# - cs-CZ: Czech (Czech Republic) -# - da-DK: Danish (Denmark) -# - de-DE: German (Germany) -# - el-GR: Greek (Greece) -# - en-AU: English (Australia) -# - en-CA: English (Canada) -# - en-GB: English (United Kingdom) -# - en-US: English (United States) -# - es-ES: Spanish (Spain) -# - et-EE: Estonian (Estonia) -# - fa-IR: Farsi (Iran) -# - fo-FO: Faroese (Faroe Islands) -# - fr-FR: French (France) -# - he-IL: Hebrew (Israel) -# - hi-IN: Hindi (India) -# - hr-HR: Croatian (Croatia) -# - hu-HU: Hungarian (Hungary) -# - id-ID: Indonesian (Indonesia) -# - it-IT: Italian (Italy) -# - ko: Korean -# - lt-LT: Lithuanian (Lithuania) -# - lv-LV: Latvian (Latvia) -# - nb-NO: Norwegian (Norway) -# - nl-NL: Dutch (Netherlands) -# - pl-PL: Polish (Poland) -# - pt-BR: Portuguese (Brazil) -# - pt-PT: Portuguese (Portugal) -# - ro-RO: Romanian (Romania) -# - ru-RU: Russian (Russia) -# - sh: Serbo-Croatian -# - sk-SK: Slovak (Slovakia) -# - sl-SI: Slovenian (Slovenia) -# - sq: Albanian -# - sr: Serbian -# - sv-SE: Swedish (Sweden) -# - ta-IN: Tamil (India) -# - tg-TG: Tajik (Tajikistan) -# - tr-TR: Turkish (Turkey) -# - uk-UA: Ukrainian (Ukraine) -# - vi-VN: Vietnamese (Viet Nam) -c.spellcheck.languages = [] - -# Position of the tab bar. -# Type: Position -# Valid values: -# - top -# - bottom -# - left -# - right -c.tabs.position = 'top' - -# When to show the tab bar. -# Type: String -# Valid values: -# - always: Always show the tab bar. -# - never: Always hide the tab bar. -# - multiple: Hide the tab bar if only one tab is open. -# - switching: Show the tab bar when switching tabs. -c.tabs.show = 'switching' - -# Search engines which can be used via the address bar. Maps a search -# engine name (such as `DEFAULT`, or `ddg`) to a URL with a `{}` -# placeholder. The placeholder will be replaced by the search term, use -# `{{` and `}}` for literal `{`/`}` signs. The search engine named -# `DEFAULT` is used when `url.auto_search` is turned on and something -# else than a URL was entered to be opened. Other search engines can be -# used by prepending the search engine name to the search term, e.g. -# `:open google qutebrowser`. -# Type: Dict -c.url.searchengines = { - 'DEFAULT': 'https://duckduckgo.com/?q={}', - 'y': 'https://youtube.com/results?search_query={}', - 'w': 'https://en.wikipedia.org/w/index.php?search={}', - 'aw': 'https://wiki.archlinux.org/index.php?search={}', - 'g': 'https://www.google.com/search?source=&q={}', - 'gi': 'https://www.google.com/search?tbm=isch&q={}', - 'aur': 'https://aur.archlinux.org/packages/?O=0&K={}', - 'c': 'https://en.cppreference.com/w/cpp/keyword/{}', - 'r': 'https://doc.rust-lang.org/stable/std/?search={}' -} - -c.url.start_pages = ['https://nixos.org/nixos/manual/options.html'] - -c.hints.chars = "asdfghjklvbcntyruewom" - -c.colors.webpage.darkmode.enabled = True - -c.colors.webpage.prefers_color_scheme_dark = True - -# Font color for hints. -# Type: QssColor -c.colors.hints.fg = '#EFF0EB' - -# Background color for hints. Note that you can use a `rgba(...)` value -# for transparency. -# Type: QssColor -c.colors.hints.bg = '#1E1F29' - -# Font color for the matched part of hints. -# Type: QssColor -c.colors.hints.match.fg = '#5AF78E' - -# leave listed modes easily with -for mode in\ - ['caret', 'command', 'hint', - 'insert', 'passthrough', 'prompt', - 'yesno']: - config.bind('', 'leave-mode', mode=mode) - -# Bindings for normal mode -config.bind(',p', 'spawn --userscript qute-pass -M gopass') -config.bind(',P', 'set-cmd-text -s :open -p') -config.bind(',r', 'restart') -config.bind(',c', 'config-source') -config.bind(';I', 'hint images download') -config.bind('X', 'undo') -config.bind('d', 'scroll-page 0 0.5') -config.bind('u', 'scroll-page 0 -0.5') -config.bind('x', 'tab-close') diff --git a/profiles/graphical/qutebrowser/default.nix b/profiles/graphical/qutebrowser/default.nix deleted file mode 100644 index f7aa0d4..0000000 --- a/profiles/graphical/qutebrowser/default.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ pkgs, ... }: -let inherit (builtins) readFile; -in -{ - sound.enable = true; - - environment = { - etc."xdg/qutebrowser/config.py".text = - let mpv = "${pkgs.mpv}/bin/mpv"; - in - '' - ${readFile ./config.py} - - config.bind(',m', 'hint links spawn -d ${mpv} {hint-url}') - config.bind(',v', 'spawn -d ${mpv} {url}') - ''; - - sessionVariables.BROWSER = "qute"; - - systemPackages = with pkgs; [ qute qutebrowser mpv youtubeDL rofi ]; - }; - - nixpkgs.overlays = [ - (final: prev: { - # wrapper to specify config file - qute = prev.writeShellScriptBin "qute" '' - QUTE_DARKMODE_VARIANT=qt_515_2 QT_QPA_PLATFORMTHEME= exec ${final.qutebrowser}/bin/qutebrowser -C /etc/xdg/qutebrowser/config.py "$@" - ''; - }) - ]; -} diff --git a/profiles/graphical/sway/config b/profiles/graphical/sway/config deleted file mode 100644 index b1c41cc..0000000 --- a/profiles/graphical/sway/config +++ /dev/null @@ -1,241 +0,0 @@ -### Variables -# -# Logo key. Use Mod1 for Alt. -set $mod Mod4 -# Home row direction keys, like vim -set $left h -set $down j -set $up k -set $right l -# preferred terminal emulator -set $term alacritty - -# preferred browser -set $browser $$BROWSER - -# Your preferred application launcher -# Note: it's recommended that you pass the final command to sway -set $menu dmenu_path | dmenu -b | xargs swaymsg exec -- - -# network manager -set $net_menu networkmanager_dmenu -b - -# don't show window titles only show single pixel as border -default_border pixel - -set $φ 38 ppt -set $Φ 62 ppt - -# reusable regexes -set $media "mpv|retroarch" - -### Autostart configuration -# launch browser and tmux session in $terminal on launch - -for_window [app_id="Alacritty"] resize set width $φ -for_window [app_id="org.qutebrowser.qutebrowser"] resize set width $Φ -for_window [app_id="org.qutebrowser.qutebrowser"] move left - -exec $term -e tmux new-session -A -s$$USER \; split-window -v -p 38 - -### idle configuration - -exec swayidle -w \ - timeout 300 'loginctl lock-session' \ - timeout 300 'swaymsg "output * dpms off"' \ - resume 'swaymsg "output * dpms on"' \ - lock 'swaylock -e -f -c 000000' \ - before-sleep 'loginctl lock-session' - -for_window [class=".*"] inhibit_idle fullscreen -for_window [app_id=".*"] inhibit_idle fullscreen - -### Input configuration -# -# Example configuration: -# - input "2:7:SynPS/2_Synaptics_TouchPad" { - dwt disable - tap enabled - natural_scroll enabled - middle_emulation enabled - pointer_accel 1 - } - -# hide mouse cursor after one second - seat seat0 { - hide_cursor 1000 - } -# -# You can get the names of your inputs by running: swaymsg -t get_inputs -# Read `man 5 sway-input` for more information about this section. - -### Key bindings -# -# Basics: -# - # Start a terminal - bindsym $mod+Return exec $term - - # Start browser - bindsym $mod+Shift+b exec $browser - - # Kill focused window - bindsym $mod+Shift+c kill - - # Start your launcher - bindsym $mod+d exec $menu - - # start network manager - bindsym $mod+n exec $net_menu - - # lock screen - bindsym $mod+Ctrl+l exec loginctl lock-session - - # go fullscreen - bindsym $mod+f fullscreen - - # display volume level when pushed - bindsym XF86AudioRaiseVolume exec $volume; $mixer 2%+ unmute - bindsym XF86AudioLowerVolume exec $volume; $mixer 2%- unmute - bindsym XF86AudioMute exec $volume; $mixer toggle - - # Drag floating windows by holding down $mod and left mouse button. - # Resize them with right mouse button + $mod. - # Despite the name, also works for non-floating windows. - # Change normal to inverse to use left mouse button for resizing and right - # mouse button for dragging. - floating_modifier $mod normal - - # Reload the configuration file - bindsym $mod+Shift+q reload - - # Exit sway (logs you out of your Wayland session) - bindsym $mod+Shift+e exec 'swaymsg exit' -# -# Moving around: -# - # Move your focus around - bindsym $mod+$left focus left - bindsym $mod+$down focus down - bindsym $mod+$up focus up - bindsym $mod+$right focus right - # Or use $mod+[up|down|left|right] - bindsym $mod+Left focus left - bindsym $mod+Down focus down - bindsym $mod+Up focus up - bindsym $mod+Right focus right - - # Move the focused window with the same, but add Shift - bindsym $mod+Shift+$left move left - bindsym $mod+Shift+$down move down - bindsym $mod+Shift+$up move up - bindsym $mod+Shift+$right move right - # Ditto, with arrow keys - bindsym $mod+Shift+Left move left - bindsym $mod+Shift+Down move down - bindsym $mod+Shift+Up move up - bindsym $mod+Shift+Right move right -# -# Workspaces: -# - # Switch to workspace - bindsym $mod+1 workspace 1:main - bindsym $mod+2 workspace 2 - bindsym $mod+3 workspace 3 - bindsym $mod+4 workspace 4 - bindsym $mod+5 workspace 5 - bindsym $mod+6 workspace 6:media - bindsym $mod+7 workspace 7 - bindsym $mod+8 workspace 8 - bindsym $mod+9 workspace 9 - bindsym $mod+0 workspace 10 - # Move focused container to workspace - bindsym $mod+Shift+1 move container to workspace 1:main - bindsym $mod+Shift+2 move container to workspace 2 - bindsym $mod+Shift+3 move container to workspace 3 - bindsym $mod+Shift+4 move container to workspace 4 - bindsym $mod+Shift+5 move container to workspace 5 - bindsym $mod+Shift+6 move container to workspace 6:media - bindsym $mod+Shift+7 move container to workspace 7 - bindsym $mod+Shift+8 move container to workspace 8 - bindsym $mod+Shift+9 move container to workspace 9 - bindsym $mod+Shift+0 move container to workspace 10 - # Note: workspaces can have any name you want, not just numbers. - # We just use 1-10 as the default. - assign [app_id=$media] workspace 6:media - for_window [app_id=$media] fullscreen enable - for_window [app_id=$media] focus -# -# Layout stuff: -# - # You can "split" the current object of your focus with - # $mod+b or $mod+v, for horizontal and vertical splits - # respectively. - bindsym $mod+b splith - bindsym $mod+v splitv - - # Switch the current container between different layout styles - bindsym $mod+s layout stacking - bindsym $mod+w layout tabbed - bindsym $mod+e layout toggle split - - # Toggle the current focus between tiling and floating mode - bindsym $mod+t floating toggle - - # Swap focus between the tiling area and the floating area - bindsym $mod+Shift+t focus mode_toggle - - # resize window to φ ratio of screen or ½ - bindsym $mod+Shift+space exec swaymsg resize set width $φ - bindsym $mod+space exec swaymsg resize set width $Φ - bindsym $mod+Ctrl+space exec swaymsg resize set width 50 - - # Move focus to the parent container - bindsym $mod+a focus parent -# -# Scratchpad: -# - # Sway has a "scratchpad", which is a bag of holding for windows. - # You can send windows there and get them back later. - - # Move the currently focused window to the scratchpad - bindsym $mod+Shift+minus move scratchpad - - # Show the next scratchpad window or hide the focused scratchpad window. - # If there are multiple scratchpad windows, this command cycles through them. - bindsym $mod+minus scratchpad show -# -# Resizing containers: -# -mode "resize" { - # left will shrink the containers width - # right will grow the containers width - # up will shrink the containers height - # down will grow the containers height - bindsym $left resize shrink width 10px - bindsym $down resize grow height 10px - bindsym $up resize shrink height 10px - bindsym $right resize grow width 10px - - # Ditto, with arrow keys - bindsym Left resize shrink width 10px - bindsym Down resize grow height 10px - bindsym Up resize shrink height 10px - bindsym Right resize grow width 10px - - # Return to default mode - bindsym Return mode "default" - bindsym Escape mode "default" -} -bindsym $mod+r mode "resize" - -# -# Status Bar: -# -# Read `man 5 sway-bar` for more information about this section. -bar { - swaybar_command waybar -} - -exec "systemctl --user import-environment; systemctl --user start sway-session.target" diff --git a/profiles/graphical/sway/default.nix b/profiles/graphical/sway/default.nix deleted file mode 100644 index d421355..0000000 --- a/profiles/graphical/sway/default.nix +++ /dev/null @@ -1,94 +0,0 @@ -{ lib, config, options, pkgs, ... }: -let - inherit (builtins) readFile; - - inherit (config.hardware) pulseaudio; -in -{ - imports = [ ../qutebrowser ]; - - sound.enable = true; - - programs.sway = { - enable = true; - - extraSessionCommands = '' - export SDL_VIDEODRIVER=wayland - # needs qt5.qtwayland in systemPackages - export QT_QPA_PLATFORM=wayland - export QT_WAYLAND_DISABLE_WINDOWDECORATION="1" - # Fix for some Java AWT applications (e.g. Android Studio), - # use this if they aren't displayed properly: - export _JAVA_AWT_WM_NONREPARENTING=1 - ''; - - extraPackages = with pkgs; - options.programs.sway.extraPackages.default ++ [ - dmenu - networkmanager_dmenu - qt5.qtwayland - alacritty - volnoti - wl-clipboard - (waybar.override { pulseSupport = pulseaudio.enable; }) - grim - slurp - ]; - }; - - environment.etc = { - "sway/config".text = - let volnoti = import ../misc/volnoti.nix { inherit pkgs; }; - in - '' - set $volume ${volnoti} - set $mixer "${pkgs.alsaUtils}/bin/amixer -q set Master" - - # set background - output * bg ${pkgs.adapta-backgrounds}/share/backgrounds/adapta/tri-fadeno.jpg fill - - ${readFile ./config} - ''; - - "xdg/waybar".source = ./waybar; - }; - - programs.tmux.extraConfig = lib.mkBefore '' - set -g @override_copy_command 'wl-copy' - ''; - - services.redshift = { - enable = true; - temperature.night = 3200; - }; - - location = { - latitude = 38.833881; - longitude = -104.821365; - }; - - systemd.user.targets.sway-session = { - enable = true; - description = "sway compositor session"; - documentation = [ "man:systemd.special(7)" ]; - - bindsTo = [ "graphical-session.target" ]; - wants = [ "graphical-session-pre.target" ]; - after = [ "graphical-session-pre.target" ]; - requiredBy = [ "graphical-session.target" "graphical-session-pre.target" ]; - }; - - systemd.user.services.volnoti = { - enable = true; - description = "volnoti volume notification"; - documentation = [ "volnoti --help" ]; - wantedBy = [ "sway-session.target" ]; - - script = "${pkgs.volnoti}/bin/volnoti -n"; - - serviceConfig = { - Restart = "always"; - RestartSec = 3; - }; - }; -} diff --git a/profiles/graphical/sway/waybar/config b/profiles/graphical/sway/waybar/config deleted file mode 100644 index 53dfe44..0000000 --- a/profiles/graphical/sway/waybar/config +++ /dev/null @@ -1,77 +0,0 @@ -{ - "layer": "top", // Waybar at top layer - // Choose the order of the modules - "modules-left": ["sway/workspaces", "sway/mode"], - "modules-center": ["sway/window"], - "modules-right": ["cpu", "memory", "temperature", "backlight", "pulseaudio", "network", "battery", "clock", "tray"], - // Modules configuration - "sway/mode": { - "format": "{}" - }, - "clock": { - "format": "{:%I:%M %p}", - "tooltip-format": "{:%Y %B}\n{calendar}", - "format-alt": "{:%Y-%m-%d}" - }, - "cpu": { - "format": "{usage}% ", - "tooltip": false - }, - "memory": { - "format": "{}% " - }, - "temperature": { - // "thermal-zone": 2, - // "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input", - "critical-threshold": 80, - // "format-critical": "{temperatureC}°C {icon}", - "format": "{temperatureC}°C {icon}", - "format-icons": ["", "", ""] - }, - "backlight": { - "format": "{percent}% {icon}", - "format-icons": ["", ""] - }, - "battery": { - "states": { - "warning": 30, - "critical": 15 - }, - "format": "{capacity}% {icon}", - "format-charging": "{capacity}% ", - "format-plugged": "{capacity}% ", - "format-alt": "{time} {icon}", - // "format-good": "", // An empty format will hide the module - // "format-full": "", - "format-icons": ["", "", "", "", ""] - }, - "network": { - "format-wifi": "{essid} ({signalStrength}%) ", - "format-ethernet": "{ifname}: {ipaddr}/{cidr} ", - "format-linked": "{ifname} (No IP) ", - "format-disconnected": "Disconnected ⚠", - "format-alt": "{ifname}: {ipaddr}/{cidr}" - }, - "pulseaudio": { - // "scroll-step": 1, // %, can be a float - "format": "{volume}% {icon} {format_source}", - "format-bluetooth": "{volume}% {icon} {format_source}", - "format-bluetooth-muted": " {icon} {format_source}", - "format-muted": " {format_source}", - "format-source": "{volume}% ", - "format-source-muted": "", - "format-icons": { - "headphones": "", - "handsfree": "", - "headset": "", - "phone": "", - "portable": "", - "car": "", - "default": ["", "", ""] - } - }, - "tray": { - "icon-size": 21, - "spacing": 10 - } -} diff --git a/profiles/graphical/sway/waybar/style.css b/profiles/graphical/sway/waybar/style.css deleted file mode 100644 index 6819d5b..0000000 --- a/profiles/graphical/sway/waybar/style.css +++ /dev/null @@ -1,122 +0,0 @@ -* { - border: none; - border-radius: 0; - font-family: Roboto, Helvetica, Arial, sans-serif; - font-size: 13px; - min-height: 0; -} - -window#waybar { - background-color: rgba(43, 48, 59, 0.5); - border-bottom: 3px solid rgba(100, 114, 125, 0.5); - color: #ffffff; - transition-property: background-color; - transition-duration: .5s; -} - -window#waybar.hidden { - opacity: 0.2; -} - -/* -window#waybar.empty { - background-color: transparent; -} -window#waybar.solo { - background-color: #FFFFFF; -} -*/ - -window#waybar.termite { - background-color: #3F3F3F; -} - -window#waybar.chromium { - background-color: #000000; - border: none; -} - -#workspaces button { - padding: 0 5px; - background-color: transparent; - color: #ffffff; - border-bottom: 3px solid transparent; -} - -/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ -#workspaces button:hover { - background: rgba(0, 0, 0, 0.2); - box-shadow: inherit; - border-bottom: 3px solid #ffffff; -} - -#workspaces button.focused { - background-color: #64727D; - border-bottom: 3px solid #ffffff; -} - -#workspaces button.urgent { - background-color: #eb4d4b; -} - -#mode { - background-color: #64727D; - border-bottom: 3px solid #ffffff; -} - -#clock, -#battery, -#cpu, -#memory, -#temperature, -#backlight, -#network, -#pulseaudio, -#custom-media, -#tray, -#mode, -#idle_inhibitor { - padding: 0 10px; - margin: 0 4px; - color: #ffffff; -} - -#battery.charging { - color: #ffffff; - background-color: #26A65B; -} - -@keyframes blink { - to { - background-color: #ffffff; - color: #000000; - } -} - -#battery.critical:not(.charging) { - background-color: #f53c3c; - color: #ffffff; - animation-name: blink; - animation-duration: 0.5s; - animation-timing-function: linear; - animation-iteration-count: infinite; - animation-direction: alternate; -} - -label:focus { - background-color: #000000; -} - -#network.disconnected { - background-color: #f53c3c; -} - -#pulseaudio.muted { - background-color: #90b1b1; - color: #2a5c45; -} - -#temperature.critical { - background-color: #eb4d4b; -} - diff --git a/profiles/graphical/xmonad/_xmonad.hs b/profiles/graphical/xmonad/_xmonad.hs deleted file mode 100644 index 67aa6e3..0000000 --- a/profiles/graphical/xmonad/_xmonad.hs +++ /dev/null @@ -1,87 +0,0 @@ -import XMonad -import XMonad.Config.Desktop (desktopConfig) -import XMonad.Hooks.EwmhDesktops (ewmh) -import XMonad.Hooks.ICCCMFocus (takeTopFocus) -import XMonad.Hooks.ManageDocks -import XMonad.Util.EZConfig (additionalKeys) - -import Data.Maybe (fromMaybe) -import Graphics.X11.ExtraTypes.XF86 (xF86XK_AudioLowerVolume, - xF86XK_AudioMute, - xF86XK_AudioRaiseVolume) -import Graphics.X11.Types (KeyMask, KeySym, Window) -import System.Environment (lookupEnv) -import XMonad.Layout.ResizableTile (ResizableTall(..), - MirrorResize (MirrorShrink, - MirrorExpand)) -import XMonad.Layout.MultiToggle -import XMonad.Layout.MultiToggle.Instances - -import Control.Monad (liftM2) -import Data.Monoid (Endo) -import XMonad.Core (Layout, Query, - ScreenDetail, ScreenId, - WorkspaceId, X) -import XMonad.Hooks.SetWMName (setWMName) -import XMonad.Layout.NoBorders (smartBorders) -import XMonad.Layout.PerWorkspace (onWorkspace) -import XMonad.Layout.Reflect (reflectHoriz) -import XMonad.Util.Cursor -import qualified XMonad.StackSet as S (StackSet, greedyView, - shift) - -main :: IO () -main = - xmonad . ewmh $ desktopConfig - { terminal = "alacritty" - , modMask = myModKey - , layoutHook = avoidStruts myLayout - , workspaces = myWorkspaces - , startupHook = myAutostart - , manageHook = myManageHook - <+> manageHook defaultConfig - <+> manageDocks - , borderWidth = 0 - , logHook = takeTopFocus - } - `additionalKeys` myKeys - -myLayout = smartBorders - . mkToggle ( NBFULL ?? EOT) - . onWorkspace "7:im" ( half ||| Mirror half ||| tiled ||| reflectHoriz tiled ) - $ tiled ||| reflectHoriz tiled ||| half ||| Mirror half - where - tiled = ResizableTall nmaster delta ratiot [] - half = ResizableTall nmaster delta ratioh [] - nmaster = 1 - ratiot = 309/500 - ratioh = 1/2 - delta = 1/9 - -myWorkspaces :: [ String ] -myWorkspaces = ["1:main", "2:art", "3:net", "4:pdf", "5:game", "6:media", "7:im", "8", "9"] - --- Move Programs by X11 Class to specific workspaces on opening -myManageHook :: Query - ( Endo - ( S.StackSet WorkspaceId (Layout Window) Window ScreenId ScreenDetail ) - ) -myManageHook = composeAll - [ className =? "st-256color" --> viewShift "1:main" - , className =? "qutebrowser" --> viewShift "1:main" - , className =? "Gimp" --> viewShift "2:art" - , className =? "krita" --> viewShift "2:art" - , className =? "qBittorrent" --> viewShift "3:torrent" - , className =? "PCSX2" --> viewShift "5:game" - , className =? "RPCS3" --> viewShift "5:game" - , className =? "mpv" --> viewShift "6:media" - , className =? "Zathura" --> viewShift "4:pdf" - , className =? "Signal" --> doShift "7:im" - , className =? "Steam" --> doFloat - , className =? "Wine" --> doFloat - ] - where viewShift = doF . liftM2 (.) S.greedyView S.shift - --- Set ModKey to the Windows Key -myModKey :: KeyMask -myModKey = mod4Mask diff --git a/profiles/graphical/xmonad/_xmonad.nix b/profiles/graphical/xmonad/_xmonad.nix deleted file mode 100644 index 792c439..0000000 --- a/profiles/graphical/xmonad/_xmonad.nix +++ /dev/null @@ -1,111 +0,0 @@ -{ autostart, screenshots, pkgs, stoggle, volnoti }: -let inherit (pkgs) alsaUtils; -in -'' - -- Function for fullscreen toggle - fullToggle :: X () - fullToggle = do - spawn "${stoggle}" - sendMessage $ Toggle NBFULL - sendMessage $ SetStruts [] [minBound .. maxBound] - - setVolume :: String -> X () - setVolume options = do - spawn ("${alsaUtils}/bin/amixer -q set Master " ++ options) - spawn "${volnoti}" - - myAutostart :: X () - myAutostart = do - spawn "${autostart}" - spawn "feh --bg-fill --no-fehbg ${pkgs.adapta-backgrounds}/share/backgrounds/adapta/tri-fadeno.jpg" - setWMName "LG3D" - sendMessage $ SetStruts [] [minBound .. maxBound] - setDefaultCursor xC_left_ptr - - -- Set custom keybinds below following the structure: - -- ( ( ModifierKey, KeyPress ), Action ) - myKeys :: [ ( ( KeyMask, KeySym ), X () ) ] - myKeys = - -- toggle fullscreen, along with power state - [ ( ( myModKey , xK_f ) - , fullToggle - ) - -- resize windows in master pane - , ( ( myModKey , xK_Left ) - , sendMessage MirrorExpand - ) - , ( ( myModKey , xK_Right ) - , sendMessage MirrorShrink - ) - , ( ( myModKey , xK_Up ) - , sendMessage MirrorExpand - ) - , ( ( myModKey , xK_Down ) - , sendMessage MirrorShrink - ) - -- toggle systray - , ( ( myModKey .|. shiftMask , xK_f ) - , sendMessage ToggleStruts - ) - -- lower volume - , ( ( 0 , xF86XK_AudioLowerVolume ) - , setVolume "2%- unmute" - ) - -- raise volume - , ( ( 0 , xF86XK_AudioRaiseVolume ) - , setVolume "2%+ unmute" - ) - -- mute volume - , ( ( 0 , xF86XK_AudioMute ) - , setVolume "toggle" - ) - -- start qutebrowser - , ( ( myModKey , xK_b ) - , spawn "qute" - ) - -- screen lock - , ( ( myModKey .|. shiftMask , xK_l ) - - , spawn "loginctl lock-session" - ) - -- screenshot - , ( ( myModKey , xK_Print ) - , spawn "maim -u \ - \ | png2ff | xz -9 - \ - \ > ~/${screenshots}/$(date +%m.%d.%y_%I.%M.%S_%p).ff.xz" - ) - -- screenshot focused window - , ( ( myModKey .|. shiftMask , xK_Print ) - - , spawn "maim -u -i$(xdotool getactivewindow) \ - \ | png2ff \ - \ | xz -9 - \ - \ > ~/${screenshots}/$(date +%m.%d.%y_%I.%M.%S_%p).ff.xz" - ) - -- screenshot selection to clipboard - , ( ( myModKey .|. controlMask , xK_Print ) - - , spawn "maim -s -u \ - \ | xclip -selection clipboard -t image/png" - ) - -- screenshot selection file - , ( ( myModKey .|. controlMask .|. shiftMask, xK_Print ) - - , spawn "maim -s -u \ - \ | png2ff \ - \ | xz -9 - \ - \ > ~/${screenshots}/$(date +%m.%d.%y_%I.%M.%S_%p).ff.xz" - ) - -- screenshot selection to imgur and paste url in clipboard - , ( ( myModKey .|. shiftMask , xK_i ) - - , spawn "maim -s -u /tmp/img.png; \ - \ imgurbash2 /tmp/img.png; \ - \ rm /tmp/img.png" - ) - -- dmenu frontend for network manager - , ( ( myModKey , xK_n ) - , spawn "networkmanager_dmenu -fn 'monospace'" - ) - ] -'' diff --git a/profiles/graphical/xmonad/default.nix b/profiles/graphical/xmonad/default.nix deleted file mode 100644 index bc0a537..0000000 --- a/profiles/graphical/xmonad/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ pkgs, ... }: { - environment.systemPackages = with pkgs; [ - farbfeld - xss-lock - imgurbash2 - maim - xclip - xorg.xdpyinfo - ]; - - services.xserver.windowManager.xmonad = { - enable = true; - enableContribAndExtras = true; - config = import ./xmonad.hs.nix { inherit pkgs; }; - }; - - services.picom = { - enable = true; - inactiveOpacity = 0.8; - settings = { - "unredir-if-possible" = true; - "focus-exclude" = "name = 'slock'"; - }; - }; - - programs.slock.enable = true; -} diff --git a/profiles/graphical/xmonad/scripts/autostart b/profiles/graphical/xmonad/scripts/autostart deleted file mode 100644 index 46bc7fe..0000000 --- a/profiles/graphical/xmonad/scripts/autostart +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env zsh - -terminal="alacritty" - -# set screen locker to slock -pgrep -x xss-lock \ -|| xss-lock slock&! - -pgrep -x xbanish \ -|| xbanish&! - -${terminal} -e tmux new-session -As $(whoami)&! - -if ! pgrep -f qutebrowser; then - ${BROWSER} &! -fi diff --git a/profiles/graphical/xmonad/scripts/stoggle b/profiles/graphical/xmonad/scripts/stoggle deleted file mode 100644 index b08934c..0000000 --- a/profiles/graphical/xmonad/scripts/stoggle +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/env zsh -# variables for dzen2 -WIDTH=512 -WINDOW_HEIGHT=$( xdpyinfo \ - | awk '$1 ~ /dimensions/ {split($2,arr,"x"); print int(arr[2])}' \ -) -WINDOW_WIDTH=$( xdpyinfo \ - | awk '$1 ~ /dimensions/ {split($2,arr,"x"); print int(arr[1])}' \ -) -XPOS=$(( ( ${WINDOW_WIDTH} / 2 ) - ( ${WIDTH} / 2 ) )) -YPOS=$(( ${WINDOW_HEIGHT} / 2 )) - -readonly WIDTH WINDOW_HEIGHT WINDOW_WIDTH XPOS YPOS - -# get current state of dpms -xset -q \ - | grep -Eo 'DPMS is (Enabled|Disabled)' \ - | awk '{print $3}' \ - | read dpms_state - -# function to call dzen2 with current state -dzen2_dpms_state () { - local -r \ - new_dpms_state=$1 - - print "Power Management ${new_dpms_state}" \ - | dzen2 -fn "monospace" -p 2 -tw ${WIDTH} -x ${XPOS} -y ${YPOS} -} - - case $dpms_state in - Enabled) - xset -dpms - xset s off - dzen2_dpms_state "Disabled" - ;; - Disabled) - xset +dpms - xset s on - xset s 300 - dzen2_dpms_state "Enabled" - ;; - *) - exit 1 - ;; - esac diff --git a/profiles/graphical/xmonad/xmonad.hs.nix b/profiles/graphical/xmonad/xmonad.hs.nix deleted file mode 100644 index 95bd4ac..0000000 --- a/profiles/graphical/xmonad/xmonad.hs.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ pkgs, ... }: -let - inherit (builtins) readFile; - inherit (pkgs) writeScript; - - screenshots = "Pictures/shots"; - - autostart = writeScript "xmonad-autostart" (readFile ./scripts/autostart); - - stoggle = writeScript "xmonad-stoggle" (readFile ./scripts/stoggle); - - volnoti = import ../misc/volnoti.nix { inherit pkgs; }; -in -'' - ${readFile ./_xmonad.hs} - ${import ./_xmonad.nix { - inherit screenshots autostart stoggle pkgs volnoti; - }} -'' diff --git a/profiles/laptop/default.nix b/profiles/laptop/default.nix deleted file mode 100644 index 17e3687..0000000 --- a/profiles/laptop/default.nix +++ /dev/null @@ -1,62 +0,0 @@ -{ config, pkgs, lib, ... }: { - environment.systemPackages = with pkgs; [ - acpi - lm_sensors - wirelesstools - pciutils - usbutils - ]; - - hardware.bluetooth.enable = true; - - # to enable brightness keys 'keys' value may need updating per device - programs.light.enable = true; - services.actkbd = { - enable = true; - bindings = [ - { - keys = [ 225 ]; - events = [ "key" ]; - command = "/run/current-system/sw/bin/light -A 5"; - } - { - keys = [ 224 ]; - events = [ "key" ]; - command = "/run/current-system/sw/bin/light -U 5"; - } - ]; - }; - - sound.mediaKeys = lib.mkIf (!config.hardware.pulseaudio.enable) { - enable = true; - volumeStep = "1dB"; - }; - - # better timesync for unstable internet connections - services.chrony.enable = true; - services.timesyncd.enable = false; - - # power management features - services.tlp.enable = true; - services.tlp.settings = { - CPU_SCALING_GOVERNOR_ON_AC = "performance"; - CPU_SCALING_GOVERNOR_ON_BAT = "powersave"; - CPU_HWP_ON_AC = "performance"; - }; - services.logind.lidSwitch = "suspend"; - - nixpkgs.overlays = - let - light_ov = self: super: { - light = super.light.overrideAttrs (o: { - src = self.fetchFromGitHub { - owner = "haikarainen"; - repo = "light"; - rev = "ae7a6ebb45a712e5293c7961eed8cceaa4ebf0b6"; - sha256 = "00z9bxrkjpfmfhz9fbf6mjbfqvixx6857mvgmiv01fvvs0lr371n"; - }; - }); - }; - in - [ light_ov ]; -} diff --git a/profiles/misc/default.nix b/profiles/misc/default.nix deleted file mode 100644 index c915eb0..0000000 --- a/profiles/misc/default.nix +++ /dev/null @@ -1 +0,0 @@ -{ ... }: { } diff --git a/profiles/misc/disable-mitigations/default.nix b/profiles/misc/disable-mitigations/default.nix deleted file mode 100644 index 63105b1..0000000 --- a/profiles/misc/disable-mitigations/default.nix +++ /dev/null @@ -1 +0,0 @@ -{ ... }: { security.mitigations.disable = true; } diff --git a/profiles/network/adblocking/default.nix b/profiles/network/adblocking/default.nix deleted file mode 100644 index 57fd7a0..0000000 --- a/profiles/network/adblocking/default.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ pkgs, ... }: -let - inherit (builtins) concatStringsSep; - inherit (pkgs) fetchFromGitHub stdenv gnugrep; - inherit (builtins) readFile fetchurl; - - hosts = stdenv.mkDerivation { - name = "hosts"; - - src = fetchFromGitHub { - owner = "StevenBlack"; - repo = "hosts"; - rev = "a204d5a1e9049dd12378fa5f9c5ab3fc6bf3d63e"; - hash = "sha256-8WVEvpxxvxmOpP1XVgO2GFAbEHO1QileWZ3behpgYEs="; - }; - - nativeBuildInputs = [ gnugrep ]; - - installPhase = '' - mkdir -p $out/etc - - # filter whitelist - grep -Ev '(${whitelist})' hosts > $out/etc/hosts - - # filter blacklist - cat << EOF >> $out/etc/hosts - ${blacklist} - EOF - ''; - }; - - whitelist = concatStringsSep "|" [ ".*pirate(bay|proxy).*" ]; - - blacklist = concatStringsSep '' - - 0.0.0.0 '' - [ - "# auto-generated: must be first" - - # starts here - ]; - -in -{ networking.extraHosts = readFile "${hosts}/etc/hosts"; } diff --git a/profiles/network/default.nix b/profiles/network/default.nix deleted file mode 100644 index 13b5f0e..0000000 --- a/profiles/network/default.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ ... }: { - imports = [ ./networkmanager ./adblocking ]; -} diff --git a/profiles/network/networkmanager/default.nix b/profiles/network/networkmanager/default.nix deleted file mode 100644 index d3247a7..0000000 --- a/profiles/network/networkmanager/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ lib, ... }: { - networking.networkmanager = { - enable = true; - wifi.backend = "iwd"; - dns = lib.mkForce "none"; - extraConfig = '' - [main] - systemd-resolved=false - ''; - }; - - networking.nameservers = - [ "1.1.1.1#one.one.one.one" "1.0.0.1#one.one.one.one" ]; - - networking.wireless.iwd.enable = true; - - services.resolved = { - enable = true; - dnssec = "true"; - fallbackDns = [ "1.1.1.1#one.one.one.one" "1.0.0.1#one.one.one.one" ]; - extraConfig = '' - DNSOverTLS=yes - ''; - }; -} diff --git a/profiles/network/stubby/default.nix b/profiles/network/stubby/default.nix deleted file mode 100644 index 4f7de05..0000000 --- a/profiles/network/stubby/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ ... }: { - services.stubby = { - enable = true; - upstreamServers = '' - - address_data: 1.1.1.1 - tls_port: 853 - tls_auth_name: "cloudflare-dns.com" - - address_data: 1.0.0.1 - tls_port: 853 - tls_auth_name: "cloudflare-dns.com" - ''; - }; - - environment.etc = { - "resolv.conf" = { - text = '' - options edns0 - nameserver 127.0.0.1 - ''; - mode = "444"; - }; - }; - - networking = { - networkmanager.dns = "none"; - resolvconf.dnsExtensionMechanism = false; - }; -} diff --git a/profiles/network/torrent/default.nix b/profiles/network/torrent/default.nix deleted file mode 100644 index 6bebe2d..0000000 --- a/profiles/network/torrent/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ config, lib, ... }: -let - inherit (config.services.qbittorrent) port; - inherit (lib) mkAfter; -in -{ - services.qbittorrent = { - enable = true; - group = "media"; - openFirewall = true; - }; - - users.groups.media.members = [ "qbittorrent" ]; - - environment.etc."xdg/qutebrowser/config.py".text = mkAfter '' - c.url.searchengines['to'] = 'https://torrentz2.eu/search?f={}' - - config.bind(',t', """hint all spawn curl -X POST\ - -F "urls={hint-url}"\ - -F "sequentialDownload=true"\ - http://localhost:${toString port}/api/v2/torrents/add""" - ) - ''; -} diff --git a/profiles/ssh/default.nix b/profiles/ssh/default.nix deleted file mode 100644 index 2b3f707..0000000 --- a/profiles/ssh/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ ... }: { - services.openssh = { - enable = true; - challengeResponseAuthentication = false; - passwordAuthentication = false; - forwardX11 = true; - }; -} diff --git a/profiles/suites.nix b/profiles/suites.nix index a359c28..44adab1 100644 --- a/profiles/suites.nix +++ b/profiles/suites.nix @@ -16,19 +16,7 @@ with profiles; mapAttrs (_: v: lib.flk.profileMap v) # define your own suites below rec { - work = [ develop virt users.nixos users.root ]; - - graphics = work ++ [ graphical ]; - - mobile = graphics ++ [ laptop ]; - - play = graphics ++ [ - graphical.games - network.torrent - misc.disable-mitigations - ]; - - goPlay = play ++ [ laptop ]; + core = [ users.nixos users.root ]; } // { inherit allProfiles allUsers; } diff --git a/profiles/virt/default.nix b/profiles/virt/default.nix deleted file mode 100644 index 28043de..0000000 --- a/profiles/virt/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ pkgs, ... }: { - virtualisation = { - libvirtd = { - enable = true; - qemuRunAsRoot = false; - allowedBridges = [ - "virbr0" - "virbr1" - ]; - }; - - containers.enable = true; - - podman.enable = true; - oci-containers.backend = "podman"; - }; - - # you'll need to add your user to 'libvirtd' group to use virt-manager - environment.systemPackages = with pkgs; [ virt-manager vagrant ]; - - environment.shellAliases.docker = "podman"; - - environment.sessionVariables = { - VAGRANT_DEFAULT_PROVIDER = "libvirt"; - }; -} diff --git a/users/profiles/alacritty/default.nix b/users/profiles/alacritty/default.nix deleted file mode 100644 index b26092c..0000000 --- a/users/profiles/alacritty/default.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ - programs.alacritty = { - enable = true; - settings = { - env.TERM = "xterm-256color"; - window.decorations = "full"; - font.size = 9.0; - cursor.style = "Beam"; - - # snazzy theme - colors = { - # Default colors - primary = { - background = "0x282a36"; - foreground = "0xeff0eb"; - }; - - # Normal colors - normal = { - black = "0x282a36"; - red = "0xff5c57"; - green = "0x5af78e"; - yellow = "0xf3f99d"; - blue = "0x57c7ff"; - magenta = "0xff6ac1"; - cyan = "0x9aedfe"; - white = "0xf1f1f0"; - }; - - # Bright colors - bright = { - black = "0x686868"; - red = "0xff5c57"; - green = "0x5af78e"; - yellow = "0xf3f99d"; - blue = "0x57c7ff"; - magenta = "0xff6ac1"; - cyan = "0x9aedfe"; - white = "0xf1f1f0"; - }; - }; - }; - }; -}