From 40b49c52c193ec988ad3d0c7d25467f98d9a2763 Mon Sep 17 00:00:00 2001 From: Timothy DeHerrera Date: Wed, 3 Feb 2021 18:58:58 -0700 Subject: [PATCH] create core branch without any profiles This core will be used as the new base for the reuse branch, which is essentiall the same as the existing template branch, except that it is rebased from this core, simplifying future rebasing. --- hosts/NixOS.nix | 2 +- modules/list.nix | 7 +- modules/security/mitigations.nix | 50 ---- modules/services/games/gamemode.nix | 36 --- .../services/hardware/wii-u-gc-adapter.nix | 40 --- modules/services/torrent/qbittorrent.nix | 114 -------- .../services/x11/window-managers/steam.nix | 45 --- overlays/any-nix-shell.nix | 11 - overlays/cursor.nix | 7 - overlays/kakoune.nix | 16 - overlays/nix-zsh-completions.nix | 10 - overlays/qutebrowser.nix | 6 - overlays/redshift.nix | 11 - overlays/retroarchBare.nix | 23 -- overlays/slock.nix | 3 - overlays/wl-clipboard.nix | 11 - .../sddm/themes/chili/default.nix | 29 -- .../window-managers/steamcompmgr/default.nix | 47 --- pkgs/data/fonts/dejavu-nerdfont/default.nix | 27 -- pkgs/default.nix | 12 +- .../development/libraries/libinih/default.nix | 30 -- .../misc/drivers/wii-u-gc-adapter/default.nix | 31 -- .../misc/screensavers/slock/window_name.patch | 26 -- pkgs/os-specific/linux/gamemode/default.nix | 52 ---- pkgs/override.nix | 9 +- pkgs/shells/zsh/pure/default.nix | 30 -- pkgs/shells/zsh/purs/default.nix | 44 --- pkgs/shells/zsh/purs/init.sh | 17 -- profiles/ci-agent/default.nix | 3 - profiles/db/default.nix | 1 - profiles/db/postgres/default.nix | 7 - profiles/develop/default.nix | 38 --- profiles/develop/haskell/default.nix | 17 -- profiles/develop/kakoune/default.nix | 28 -- profiles/develop/kakoune/kak-lsp.toml | 191 ------------ profiles/develop/kakoune/kakrc | 104 ------- profiles/develop/kakoune/lint/nix.kak | 12 - profiles/develop/kakoune/lint/nix.sh | 13 - profiles/develop/kakoune/lsp/c.kak | 3 - profiles/develop/kakoune/lsp/common.kak | 14 - profiles/develop/kakoune/lsp/dhall.kak | 3 - profiles/develop/kakoune/lsp/elm.kak | 5 - profiles/develop/kakoune/lsp/haskell.kak | 3 - profiles/develop/kakoune/lsp/python.kak | 3 - profiles/develop/kakoune/lsp/rust.kak | 10 - .../develop/kakoune/plugins/auto-pairs.kak | 6 - profiles/develop/kakoune/plugins/buffer.kak | 4 - profiles/develop/kakoune/plugins/fzf.kak | 1 - profiles/develop/kakoune/plugins/git.kak | 17 -- profiles/develop/kakoune/plugins/kakboard.kak | 182 ------------ .../kakoune/plugins/vertical-selection.kak | 3 - profiles/develop/python/default.nix | 47 --- profiles/develop/python/ptconfig.py | 164 ----------- profiles/develop/tmux/default.nix | 43 --- profiles/develop/tmux/tmux.conf | 57 ---- profiles/develop/tmux/tmuxline.conf | 26 -- profiles/develop/zsh/cdr-skim.zsh | 1 - profiles/develop/zsh/cdr.zsh | 11 - profiles/develop/zsh/default.nix | 150 ---------- profiles/develop/zsh/functions/chext | 5 - profiles/develop/zsh/functions/exa | 6 - profiles/develop/zsh/functions/i | 12 - profiles/develop/zsh/functions/man | 8 - profiles/develop/zsh/functions/mcd | 2 - profiles/develop/zsh/functions/rg | 6 - profiles/develop/zsh/functions/rnm | 4 - profiles/develop/zsh/zshrc | 58 ---- profiles/graphical/default.nix | 88 ------ profiles/graphical/games/default.nix | 29 -- profiles/graphical/games/udev.nix | 45 --- profiles/graphical/im/default.nix | 7 - profiles/graphical/misc/volnoti.nix | 18 -- profiles/graphical/plex/default.nix | 10 - profiles/graphical/qutebrowser/config.py | 276 ------------------ profiles/graphical/qutebrowser/default.nix | 31 -- profiles/graphical/sway/config | 241 --------------- profiles/graphical/sway/default.nix | 94 ------ profiles/graphical/sway/waybar/config | 77 ----- profiles/graphical/sway/waybar/style.css | 122 -------- profiles/graphical/xmonad/_xmonad.hs | 87 ------ profiles/graphical/xmonad/_xmonad.nix | 111 ------- profiles/graphical/xmonad/default.nix | 27 -- profiles/graphical/xmonad/scripts/autostart | 16 - profiles/graphical/xmonad/scripts/stoggle | 45 --- profiles/graphical/xmonad/xmonad.hs.nix | 19 -- profiles/laptop/default.nix | 62 ---- profiles/misc/default.nix | 1 - profiles/misc/disable-mitigations/default.nix | 1 - profiles/network/adblocking/default.nix | 44 --- profiles/network/default.nix | 3 - profiles/network/networkmanager/default.nix | 25 -- profiles/network/stubby/default.nix | 28 -- profiles/network/torrent/default.nix | 24 -- profiles/ssh/default.nix | 8 - profiles/suites.nix | 14 +- profiles/virt/default.nix | 26 -- users/profiles/alacritty/default.nix | 44 --- 97 files changed, 5 insertions(+), 3632 deletions(-) delete mode 100644 modules/security/mitigations.nix delete mode 100644 modules/services/games/gamemode.nix delete mode 100644 modules/services/hardware/wii-u-gc-adapter.nix delete mode 100644 modules/services/torrent/qbittorrent.nix delete mode 100644 modules/services/x11/window-managers/steam.nix delete mode 100644 overlays/any-nix-shell.nix delete mode 100644 overlays/cursor.nix delete mode 100644 overlays/kakoune.nix delete mode 100644 overlays/nix-zsh-completions.nix delete mode 100644 overlays/qutebrowser.nix delete mode 100644 overlays/redshift.nix delete mode 100644 overlays/retroarchBare.nix delete mode 100644 overlays/slock.nix delete mode 100644 overlays/wl-clipboard.nix delete mode 100644 pkgs/applications/display-managers/sddm/themes/chili/default.nix delete mode 100644 pkgs/applications/window-managers/steamcompmgr/default.nix delete mode 100644 pkgs/data/fonts/dejavu-nerdfont/default.nix delete mode 100644 pkgs/development/libraries/libinih/default.nix delete mode 100644 pkgs/misc/drivers/wii-u-gc-adapter/default.nix delete mode 100644 pkgs/misc/screensavers/slock/window_name.patch delete mode 100644 pkgs/os-specific/linux/gamemode/default.nix delete mode 100644 pkgs/shells/zsh/pure/default.nix delete mode 100644 pkgs/shells/zsh/purs/default.nix delete mode 100644 pkgs/shells/zsh/purs/init.sh delete mode 100644 profiles/ci-agent/default.nix delete mode 100644 profiles/db/default.nix delete mode 100644 profiles/db/postgres/default.nix delete mode 100644 profiles/develop/default.nix delete mode 100644 profiles/develop/haskell/default.nix delete mode 100644 profiles/develop/kakoune/default.nix delete mode 100644 profiles/develop/kakoune/kak-lsp.toml delete mode 100644 profiles/develop/kakoune/kakrc delete mode 100644 profiles/develop/kakoune/lint/nix.kak delete mode 100755 profiles/develop/kakoune/lint/nix.sh delete mode 100644 profiles/develop/kakoune/lsp/c.kak delete mode 100644 profiles/develop/kakoune/lsp/common.kak delete mode 100644 profiles/develop/kakoune/lsp/dhall.kak delete mode 100644 profiles/develop/kakoune/lsp/elm.kak delete mode 100644 profiles/develop/kakoune/lsp/haskell.kak delete mode 100644 profiles/develop/kakoune/lsp/python.kak delete mode 100644 profiles/develop/kakoune/lsp/rust.kak delete mode 100644 profiles/develop/kakoune/plugins/auto-pairs.kak delete mode 100644 profiles/develop/kakoune/plugins/buffer.kak delete mode 100644 profiles/develop/kakoune/plugins/fzf.kak delete mode 100644 profiles/develop/kakoune/plugins/git.kak delete mode 100644 profiles/develop/kakoune/plugins/kakboard.kak delete mode 100644 profiles/develop/kakoune/plugins/vertical-selection.kak delete mode 100644 profiles/develop/python/default.nix delete mode 100644 profiles/develop/python/ptconfig.py delete mode 100644 profiles/develop/tmux/default.nix delete mode 100644 profiles/develop/tmux/tmux.conf delete mode 100644 profiles/develop/tmux/tmuxline.conf delete mode 100644 profiles/develop/zsh/cdr-skim.zsh delete mode 100644 profiles/develop/zsh/cdr.zsh delete mode 100644 profiles/develop/zsh/default.nix delete mode 100644 profiles/develop/zsh/functions/chext delete mode 100644 profiles/develop/zsh/functions/exa delete mode 100644 profiles/develop/zsh/functions/i delete mode 100644 profiles/develop/zsh/functions/man delete mode 100644 profiles/develop/zsh/functions/mcd delete mode 100644 profiles/develop/zsh/functions/rg delete mode 100644 profiles/develop/zsh/functions/rnm delete mode 100644 profiles/develop/zsh/zshrc delete mode 100644 profiles/graphical/default.nix delete mode 100644 profiles/graphical/games/default.nix delete mode 100644 profiles/graphical/games/udev.nix delete mode 100644 profiles/graphical/im/default.nix delete mode 100644 profiles/graphical/misc/volnoti.nix delete mode 100644 profiles/graphical/plex/default.nix delete mode 100644 profiles/graphical/qutebrowser/config.py delete mode 100644 profiles/graphical/qutebrowser/default.nix delete mode 100644 profiles/graphical/sway/config delete mode 100644 profiles/graphical/sway/default.nix delete mode 100644 profiles/graphical/sway/waybar/config delete mode 100644 profiles/graphical/sway/waybar/style.css delete mode 100644 profiles/graphical/xmonad/_xmonad.hs delete mode 100644 profiles/graphical/xmonad/_xmonad.nix delete mode 100644 profiles/graphical/xmonad/default.nix delete mode 100644 profiles/graphical/xmonad/scripts/autostart delete mode 100644 profiles/graphical/xmonad/scripts/stoggle delete mode 100644 profiles/graphical/xmonad/xmonad.hs.nix delete mode 100644 profiles/laptop/default.nix delete mode 100644 profiles/misc/default.nix delete mode 100644 profiles/misc/disable-mitigations/default.nix delete mode 100644 profiles/network/adblocking/default.nix delete mode 100644 profiles/network/default.nix delete mode 100644 profiles/network/networkmanager/default.nix delete mode 100644 profiles/network/stubby/default.nix delete mode 100644 profiles/network/torrent/default.nix delete mode 100644 profiles/ssh/default.nix delete mode 100644 profiles/virt/default.nix delete mode 100644 users/profiles/alacritty/default.nix diff --git a/hosts/NixOS.nix b/hosts/NixOS.nix index 6fd834ed..15c2a3c0 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 ab5875bb..1e3ec721 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 7f964317..00000000 --- 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 cc0149dd..00000000 --- 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 3bfa1b7e..00000000 --- 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 ede365bc..00000000 --- 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 46b3cb5a..00000000 --- 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 635e37df..00000000 --- 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 b73a0618..00000000 --- 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 8a61aa4c..00000000 --- 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 f465e988..00000000 --- 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 da823ebb..00000000 --- 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 fa05132c..00000000 --- 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 ea6c6564..00000000 --- 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 4a61a4f6..00000000 --- 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 d9f288c5..00000000 --- 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 1085b8d1..00000000 --- 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 cb87e080..00000000 --- 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 fa7fa12b..00000000 --- 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 fd75896f..ce168707 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 6d81f72a..00000000 --- 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 bd5359f2..00000000 --- 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 740b8213..00000000 --- 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 e4b07468..00000000 --- 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 e5720a67..6dbced6c 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 7771e531..00000000 --- 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 a376857d..00000000 --- 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 8f9fbc1f..00000000 --- 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 9dcb15a9..00000000 --- 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 c915eb0a..00000000 --- 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 118e1f72..00000000 --- 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 337efe77..00000000 --- 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 f0ad46a2..00000000 --- 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 7365d4ac..00000000 --- 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 9f5d8fb9..00000000 --- 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 3a5d21ce..00000000 --- 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 4977ad0a..00000000 --- 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 f69726cc..00000000 --- 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 d080b63d..00000000 --- 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 c2f55df9..00000000 --- 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 3206482e..00000000 --- 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 43dad302..00000000 --- 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 ff927a3b..00000000 --- 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 26b4e3b8..00000000 --- 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 6c095bd9..00000000 --- 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 e0a5d6ba..00000000 --- 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 fe1b4383..00000000 --- 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 aa2be846..00000000 --- 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 31815628..00000000 --- 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 acf0c7f5..00000000 --- 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 eeb68b3e..00000000 --- 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 58c12c3b..00000000 --- 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 64a4bdef..00000000 --- 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 0d9ef456..00000000 --- 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 59431da5..00000000 --- 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 ef273da2..00000000 --- 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 4149da05..00000000 --- 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 0b88918d..00000000 --- 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 745c49fc..00000000 --- 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 52905a9f..00000000 --- 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 0e2be3e7..00000000 --- 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 cde8d932..00000000 --- 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 35dc049b..00000000 --- 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 bd28cf3d..00000000 --- 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 61e326e9..00000000 --- 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 766bc9cf..00000000 --- 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 5c09ceba..00000000 --- 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 5e232118..00000000 --- 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 01ac5034..00000000 --- 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 bdaee327..00000000 --- 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 b4d150d7..00000000 --- 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 e3d45bde..00000000 --- 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 efaf532e..00000000 --- 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 aa20f0e3..00000000 --- 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 f7aa0d43..00000000 --- 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 b1c41cc7..00000000 --- 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 d4213555..00000000 --- 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 53dfe44c..00000000 --- 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 6819d5bd..00000000 --- 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 67aa6e3b..00000000 --- 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 792c4393..00000000 --- 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 bc0a5374..00000000 --- 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 46bc7fee..00000000 --- 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 b08934cb..00000000 --- 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 95bd4aca..00000000 --- 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 17e36877..00000000 --- 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 c915eb0a..00000000 --- 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 63105b13..00000000 --- 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 57fd7a06..00000000 --- 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 13b5f0e1..00000000 --- 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 d3247a75..00000000 --- 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 4f7de051..00000000 --- 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 6bebe2d9..00000000 --- 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 2b3f7079..00000000 --- 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 a359c28c..44adab1b 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 28043de4..00000000 --- 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 b26092c3..00000000 --- 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"; - }; - }; - }; - }; -}