From c191adcc99abe223cdb2e6ff3711c1af8f1bd26d Mon Sep 17 00:00:00 2001 From: Schrottkatze Date: Tue, 14 Nov 2023 12:22:19 +0100 Subject: [PATCH] rewrite and refactor a lot, delete redundant configs --- common.nix | 14 +- haskell/xmonad/xmonad.hs | 3 +- hosts/catbook-j/configuration.nix | 5 - hosts/katzencafe/calckey.nix | 49 --- hosts/katzencafe/configuration.nix | 109 ------ hosts/katzencafe/hardware-configuration.nix | 39 -- hosts/katzencafe/proxy.nix | 61 --- .../monosodium-glutamate-g/configuration.nix | 5 - hosts/potatobook-g/configuration.nix | 2 - hosts/schrottserver/configuration.nix | 59 --- .../schrottserver/hardware-configuration.nix | 37 -- hosts/schrottserver/microbin.nix | 27 -- hosts/schrottserver/mumble.nix | 8 - hosts/schrottserver/nextcloud.nix | 38 -- hosts/schrottserver/penpot.nix | 75 ---- hosts/schrottserver/proxy.nix | 124 ------ hosts/schrottserver/synapse.nix | 33 -- hosts/schrottserver/vaultwarden.nix | 22 -- modules/default.nix | 5 +- modules/desktop/cloud.nix | 16 - modules/desktop/creative.nix | 50 +-- modules/desktop/default.nix | 353 ++++++------------ modules/desktop/dunst.nix | 19 + modules/desktop/i3/default.nix | 170 --------- modules/desktop/specific-hardware/default.nix | 1 + .../desktop/specific-hardware/spacenav.nix | 2 +- modules/desktop/specific-hardware/wacom.nix | 10 + modules/desktop/xmonad.nix | 7 + modules/helix.nix | 46 --- modules/neovim.nix | 179 --------- modules/shell/carapace.nix | 7 + modules/shell/default.nix | 10 + modules/shell/direnv.nix | 8 + modules/shell/helix.nix | 39 ++ modules/shell/nu.nix | 16 + modules/shell/starship.nix | 36 ++ modules/shell/zellij.nix | 35 ++ modules/zellij.nix | 48 --- modules/zsh.nix | 90 ----- other/config.nu | 26 +- other/scripts/desktop/permaclip/pc-get.sh | 15 - other/scripts/desktop/permaclip/pc-set.sh | 16 - other/scripts/desktop/searchwolf.nix | 2 - other/scripts/desktop/searchwolf.sh | 25 -- 44 files changed, 334 insertions(+), 1607 deletions(-) delete mode 100644 hosts/katzencafe/calckey.nix delete mode 100644 hosts/katzencafe/configuration.nix delete mode 100644 hosts/katzencafe/hardware-configuration.nix delete mode 100644 hosts/katzencafe/proxy.nix delete mode 100644 hosts/schrottserver/configuration.nix delete mode 100644 hosts/schrottserver/hardware-configuration.nix delete mode 100644 hosts/schrottserver/microbin.nix delete mode 100644 hosts/schrottserver/mumble.nix delete mode 100644 hosts/schrottserver/nextcloud.nix delete mode 100644 hosts/schrottserver/penpot.nix delete mode 100644 hosts/schrottserver/proxy.nix delete mode 100644 hosts/schrottserver/synapse.nix delete mode 100644 hosts/schrottserver/vaultwarden.nix create mode 100644 modules/desktop/dunst.nix delete mode 100644 modules/desktop/i3/default.nix delete mode 100644 modules/helix.nix delete mode 100644 modules/neovim.nix create mode 100644 modules/shell/carapace.nix create mode 100644 modules/shell/default.nix create mode 100644 modules/shell/direnv.nix create mode 100644 modules/shell/helix.nix create mode 100644 modules/shell/nu.nix create mode 100644 modules/shell/starship.nix create mode 100644 modules/shell/zellij.nix delete mode 100644 modules/zellij.nix delete mode 100644 modules/zsh.nix delete mode 100644 other/scripts/desktop/permaclip/pc-get.sh delete mode 100644 other/scripts/desktop/permaclip/pc-set.sh delete mode 100644 other/scripts/desktop/searchwolf.nix delete mode 100755 other/scripts/desktop/searchwolf.sh diff --git a/common.nix b/common.nix index 44ada84..fc110fd 100644 --- a/common.nix +++ b/common.nix @@ -27,9 +27,9 @@ with builtins; environment = { systemPackages = with pkgs; [ - nushellFull networkmanager htmlq + htmlq - wget git neofetch pciutils zip unzip gnutar iw btop nodejs jdk8 jdk11 + wget git neofetch pciutils zip unzip gnutar iw btop nodejs jdk8 jdk11 jdk libsecret gh nix-prefetch-scripts fzf glab ripgrep sl lolcat appimage-run git-crypt file whois p7zip file nmap cmatrix tree socat smartmontools mprocs @@ -93,9 +93,12 @@ with builtins; boot.kernel.sysctl."vm.max_map_count" = 2147483642; - hardware.opengl.enable = true; - - hardware.uinput.enable = true; + hardware = { + opengl.enable = true; + uinput.enable = true; + bluetooth.enable = true; + keyboard.uhk.enable = true; + }; security.rtkit.enable = true; @@ -113,7 +116,6 @@ users.users.jade = { algorithm = "zstd"; }; - # users.defaultUserShell = pkgs.nushell.override { additionalFeatures = (p: p ++ ["dataframe" "extra"]); }; users.defaultUserShell = pkgs.nushellFull; } diff --git a/haskell/xmonad/xmonad.hs b/haskell/xmonad/xmonad.hs index 2ec0677..adf0c33 100644 --- a/haskell/xmonad/xmonad.hs +++ b/haskell/xmonad/xmonad.hs @@ -86,8 +86,6 @@ myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $ , ((modm, xK_m), spawn "menu-qalc -- -theme gruvbox-dark") , ((modm, xK_i), spawn "rofimoji --selector-args '-theme gruvbox-dark' -f alchemical_symbols anatolian_hieroglyphs emojis braille_patterns box_drawing chess_symbols emoticons geometric_shapes gothic greek_extended math mathematical_alphanumeric_symbols mathematical_operators miscellaneous_symbols miscellaneous_mathematical_symbols-a miscellaneous_mathematical_symbols-b miscellaneous_symbols_and_arrows miscellaneous_symbols_and_pictographs miscellaneous_technical modi modifier_tone_letters musical_symbols nerd_font number_forms shorthand_format_controls specials variation_selectors vertical_forms -a copy") - , ((modm, xK_o), spawn "rofi -show searchwolf -modes searchwolf:searchwolf -theme gruvbox-dark") - -- screenshotting -- TODO: Fix/rewrite window-screenshot.sh , ((modm, xK_w), spawn "window-screenshot.nu") @@ -281,6 +279,7 @@ myStartupHook = do spawn "pkill volumeicon; volumeicon" spawn "pkill nm-applet; nm-applet" spawn "mullvad-vpn --background" + spawn "feh --bg-fill ~/Pictures/wallpaper.jpg" setDefaultKeyRemap myRemaps [myRemaps] diff --git a/hosts/catbook-j/configuration.nix b/hosts/catbook-j/configuration.nix index 8925751..14a50e2 100644 --- a/hosts/catbook-j/configuration.nix +++ b/hosts/catbook-j/configuration.nix @@ -31,9 +31,7 @@ in { jade = { flatpak.enable = true; desktop = { - enable = true; compositing.enable = true; - creative.enable = true; syncthing.enable = true; kdeconnect.enable = true; cloud.enable = true; @@ -41,10 +39,7 @@ in { mail.enable = true; gaming.enable = true; }; - helix.enable = true; - zellij.enable = true; terminal.enable = true; - # zsh.enable = true; }; hardware.trackpoint = { diff --git a/hosts/katzencafe/calckey.nix b/hosts/katzencafe/calckey.nix deleted file mode 100644 index 60a0505..0000000 --- a/hosts/katzencafe/calckey.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ pkgs, inputs, ... }: -{ - imports = [ inputs.arion.nixosModules.arion ]; - virtualisation.docker.enable = true; - virtualisation.arion = { - backend = "docker"; - projects.calckey.settings = { - networks.calcnet.name = "calcnet"; - services = { - "web".service = { - image = "docker.io/thatonecalculator/calckey"; - container_name = "calckey_web"; - restart = "unless-stopped"; - depends_on = [ "db" "redis" ]; - ports = [ "3000:3000" ]; - networks = [ "calcnet" ]; - environment = { - "NODE_ENV" = "production"; - }; - volumes = [ - "/calckey/files:/calckey/files" - "/calckey/config:/calckey/.config:ro" - ]; - }; - "redis".service = { - image = "docker.io/redis:7.0-alpine"; - container_name = "calckey_redis"; - restart = "unless-stopped"; - networks = [ "calcnet" ]; - volumes = [ "/calckey/redis:/data" ]; - }; - "db".service = { - image = "docker.io/postgres:12.2-alpine"; - container_name = "calckey_db"; - restart = "unless-stopped"; - networks = [ "calcnet" ]; - environment = { - POSTGRES_PASSWORD = "calckey"; - POSTGRES_USER = "calckey"; - POSTGRES_DB = "calckey"; - }; - volumes = [ - "/calckey/db:/var/lib/postgresql/data" - ]; - }; - }; - }; - }; -} diff --git a/hosts/katzencafe/configuration.nix b/hosts/katzencafe/configuration.nix deleted file mode 100644 index bd3c1c5..0000000 --- a/hosts/katzencafe/configuration.nix +++ /dev/null @@ -1,109 +0,0 @@ -# Edit this configuration file to define what should be installed on -# your system. Help is available in the configuration.nix(5) man page -# and in the NixOS manual (accessible by running ‘nixos-help’). - -{ config, pkgs, ... }: - -{ - imports = - [ # Include the results of the hardware scan. - ./hardware-configuration.nix - ../../common.nix - ../../modules/zsh.nix - ../../modules/neovim.nix - ../../modules/firewall.nix - - ./proxy.nix - ./calckey.nix - ]; - - jade = { - neovim.enable = true; - zsh.enable = true; - }; - - # Use the systemd-boot EFI boot loader. - boot.loader.systemd-boot.enable = true; - boot.loader.efi.canTouchEfiVariables = false; - - boot.kernelPackages = pkgs.linuxPackages_latest; - - networking.hostName = "katzencafe"; # Define your hostname. - # Pick only one of the below networking options. - # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. - networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. - - # Select internationalisation properties. - i18n.defaultLocale = "en_US.UTF-8"; - - # Define a user account. Don't forget to set a password with ‘passwd’. - users.users.jade = { - isNormalUser = true; - extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user. - packages = with pkgs; [ - ]; - }; - - # List packages installed in system profile. To search, run: - environment.systemPackages = with pkgs; [ - vim gitMinimal # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. - wget - ]; - - system.stateVersion = "22.11"; # Did you read the comment? - - services.jitsi-meet = { - enable = true; - hostName = "meet.katzen.cafe"; - }; - services.jitsi-videobridge.openFirewall = true; - - services.murmur = { - enable = true; - openFirewall = true; - registerHostname = "mumble.katzen.cafe"; - sslKey = "/var/lib/acme/mumble.katzen.cafe/key.pem"; - sslCert = "/var/lib/acme/mumble.katzen.cafe/cert.pem"; - }; - - containers = { - "phtanumb-wiki" = { - autoStart = true; - forwardPorts = [ - { - containerPort = 8080; - hostPort = 8099; - protocol = "tcp"; - } - ]; - bindMounts = { - "/var/mediawiki" = { - hostPath = "/phtanum-b/wiki"; - isReadOnly = false; - }; - }; - config = { config, pkgs, ... }: { - services.mediawiki = { - enable = true; - name = "phtanum-b"; - virtualHost.listen = [ - { - #ip = "127.0.0.1"; - port = 8080; - ssl = false; - } - ]; - virtualHost.adminAddr = "admin@katzen.cafe"; - passwordFile = "/var/mediawiki/passwordFile"; - extraConfig = '' - # Disable anonymous editing - $wgGroupPermissions['*']['edit'] = false; - ''; - }; - - system.stateVersion = "22.11"; - }; - }; - }; -} - diff --git a/hosts/katzencafe/hardware-configuration.nix b/hosts/katzencafe/hardware-configuration.nix deleted file mode 100644 index 9164b68..0000000 --- a/hosts/katzencafe/hardware-configuration.nix +++ /dev/null @@ -1,39 +0,0 @@ -# Do not modify this file! It was generated by ‘nixos-generate-config’ -# and may be overwritten by future invocations. Please make changes -# to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: - -{ - imports = - [ (modulesPath + "/profiles/qemu-guest.nix") - ]; - - boot.initrd.availableKernelModules = [ "xhci_pci" "virtio_pci" "usbhid" "sr_mod" ]; - boot.initrd.kernelModules = [ "virtio_gpu" ]; - boot.kernelParams = [ "console=tty" ]; - boot.kernelModules = [ ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = - { device = "/dev/disk/by-uuid/0ce40e38-b9ef-4d84-b678-10745b7fedb4"; - fsType = "ext4"; - }; - - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/DEBB-944F"; - fsType = "vfat"; - }; - - swapDevices = - [ { device = "/dev/disk/by-uuid/9cb23bf3-128c-4847-8f72-f14f4aaa5026"; } - ]; - - # Enables DHCP on each ethernet and wireless interface. In case of scripted networking - # (the default) this is the recommended approach. When using systemd-networkd it's - # still possible to use this option, but it's recommended to use it in conjunction - # with explicit per-interface declarations with `networking.interfaces..useDHCP`. - networking.useDHCP = lib.mkDefault true; - # networking.interfaces.enp1s0.useDHCP = lib.mkDefault true; - - nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux"; -} diff --git a/hosts/katzencafe/proxy.nix b/hosts/katzencafe/proxy.nix deleted file mode 100644 index c8db122..0000000 --- a/hosts/katzencafe/proxy.nix +++ /dev/null @@ -1,61 +0,0 @@ -{ inputs, config, pkgs, ... }: -{ - security.acme = { - acceptTerms = true; - defaults.email = "jade@schrottkatze.de"; - defaults.server = "https://acme-staging-v02.api.letsencrypt.org/directory"; - defaults.webroot = "/var/lib/acme/acme-challenge"; - certs = { - "ck.katzen.cafe" = { - group = "nginx"; - keyType = "rsa4096"; - }; - "meet.katzen.cafe" = { - group = "nginx"; - keyType = "rsa4096"; - }; - "wiki.phtanum-b.katzen.cafe" = { - group = "nginx"; - keyType = "rsa4096"; - }; - "mumble.katzen.cafe" = { - group = "murmur"; - keyType = "rsa4096"; - }; - }; - }; - - services.nginx = { - enable = true; - - recommendedGzipSettings = true; - recommendedOptimisation = true; - recommendedProxySettings = true; - recommendedTlsSettings = true; - - virtualHosts = { - "ck.katzen.cafe" = { - forceSSL = true; - enableACME = true; - locations."/" = { - proxyPass = "http://localhost:3000"; - proxyWebsockets = true; - extraConfig = '' - client_max_body_size 8M; - - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto https; - ''; - }; - }; - "wiki.phtanum-b.katzen.cafe" = { - forceSSL = true; - enableACME = true; - locations."/" = { - proxyPass = "http://localhost:8099"; - }; - }; - }; - }; -} diff --git a/hosts/monosodium-glutamate-g/configuration.nix b/hosts/monosodium-glutamate-g/configuration.nix index 0c0f11b..0fcf53a 100644 --- a/hosts/monosodium-glutamate-g/configuration.nix +++ b/hosts/monosodium-glutamate-g/configuration.nix @@ -31,9 +31,7 @@ jade = { flatpak.enable = true; desktop = { - enable = true; compositing.enable = true; - creative.enable = true; syncthing.enable = true; kdeconnect.enable = true; cloud.enable = true; @@ -42,10 +40,7 @@ ios-compat.enable = true; mail.enable = true; }; - zellij.enable = true; terminal.enable = true; - helix.enable = true; - zsh.enable = true; }; boot = { loader = { diff --git a/hosts/potatobook-g/configuration.nix b/hosts/potatobook-g/configuration.nix index c03b65c..4bdf4b3 100644 --- a/hosts/potatobook-g/configuration.nix +++ b/hosts/potatobook-g/configuration.nix @@ -62,9 +62,7 @@ in { jade = { flatpak.enable = true; desktop = { - enable = true; compositing.enable = true; - creative.enable = true; syncthing.enable = true; kdeconnect.enable = true; cloud.enable = true; diff --git a/hosts/schrottserver/configuration.nix b/hosts/schrottserver/configuration.nix deleted file mode 100644 index df7eb1e..0000000 --- a/hosts/schrottserver/configuration.nix +++ /dev/null @@ -1,59 +0,0 @@ -# Edit this configuration file to define what should be installed on -# your system. Help is available in the configuration.nix(5) man page -# and in the NixOS manual (accessible by running ‘nixos-help’). - -{ inputs, config, pkgs, ... }: - -{ - imports = - [ # Include the results of the hardware scan. - ./hardware-configuration.nix - ../../common.nix - ./proxy.nix - ./vaultwarden.nix - ./nextcloud.nix - ./mumble.nix - ./microbin.nix - ../../modules/neovim.nix - ../../modules/zsh.nix - ../../modules/firewall.nix - #./synapse.nix - ./penpot.nix - ]; - - #systemd.services.wordsofgod-bot.enable = true; - - systemd.services.wordsofgod-bot = { - wantedBy = [ "multi-user.target" ]; - serviceConfig.ExecStart = "${inputs.wordsofgod.packages."x86_64-linux".default}/bin/wordsofgod"; - serviceConfig.EnvironmentFile = "/etc/wordsofgod-bot/wordsofgod.env"; - }; - - services = { - openssh.permitRootLogin = "without-password"; - fail2ban = { - enable = true; - bantime-increment.enable = true; - }; - }; - - jade = { - neovim.enable = true; - zsh.enable = true; - }; - - # Use the GRUB 2 boot loader. - boot.loader.grub.enable = true; - boot.loader.grub.version = 2; - boot.loader.grub.device = "/dev/sda"; # or "nodev" for efi only - - environment.systemPackages = [ inputs.wordsofgod ]; - - networking.hostName = "schrottserver"; # Define your hostname. - networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. - - # default settings for stateful data; don't change unless reinstall with newer version - system.stateVersion = "22.11"; # Did you read the comment? - -} - diff --git a/hosts/schrottserver/hardware-configuration.nix b/hosts/schrottserver/hardware-configuration.nix deleted file mode 100644 index 549050f..0000000 --- a/hosts/schrottserver/hardware-configuration.nix +++ /dev/null @@ -1,37 +0,0 @@ -# Do not modify this file! It was generated by ‘nixos-generate-config’ -# and may be overwritten by future invocations. Please make changes -# to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: - -{ - imports = - [ (modulesPath + "/profiles/qemu-guest.nix") - ]; - - boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "sd_mod" "sr_mod" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = - { device = "/dev/disk/by-uuid/e8d88849-3746-4c24-9ecd-09921645ef81"; - fsType = "ext4"; - }; - - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/0107-0E2C"; - fsType = "vfat"; - }; - - swapDevices = [ ]; - - # Enables DHCP on each ethernet and wireless interface. In case of scripted networking - # (the default) this is the recommended approach. When using systemd-networkd it's - # still possible to use this option, but it's recommended to use it in conjunction - # with explicit per-interface declarations with `networking.interfaces..useDHCP`. - networking.useDHCP = lib.mkDefault true; - # networking.interfaces.enp1s0.useDHCP = lib.mkDefault true; - - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; -} diff --git a/hosts/schrottserver/microbin.nix b/hosts/schrottserver/microbin.nix deleted file mode 100644 index d2d3ae2..0000000 --- a/hosts/schrottserver/microbin.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ inputs, config, pkgs, ... }: -{ - environment.systemPackages = [ inputs.karton.defaultPackage."x86_64-linux" ]; - systemd.services.karton = { - after = [ "network.target" ]; - wantedBy = [ "multi-user.target" ]; - environment = { - #MICROBIN_AUTH_USERNAME = "jade"; - KARTON_HASH_IDS = ""; - KARTON_EDITABLE = ""; - KARTON_PRIVATE = ""; - KARTON_HIGHLIGHTSYNTAX = ""; - KARTON_PUBLIC_PATH = "https://s10e.de"; - KARTON_QR = ""; - KARTON_URL_EP = "u"; - KARTON_RAW_EP = "r"; - KARTON_PASTA_EP = "p"; - }; - script = "${inputs.karton.defaultPackage."x86_64-linux"}/bin/karton"; - #scriptArgs = "--auth-password ${builtins.readFile ../secret-data/mb-pass} --auth-username jade --editable --hash-ids --no-listing --highlightsyntax --public-path https://s10e.de --qr"; - serviceConfig = { - Type = "simple"; - RootDirectory="/"; - WorkingDirectory = "/karton"; - }; - }; -} diff --git a/hosts/schrottserver/mumble.nix b/hosts/schrottserver/mumble.nix deleted file mode 100644 index 53b05ea..0000000 --- a/hosts/schrottserver/mumble.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ pkgs, ... }: -{ - environment.systemPackages = with pkgs; [ murmur ]; - services.murmur = { - enable = true; - registerHostname = "mumble.schrottkatze.de"; - }; -} diff --git a/hosts/schrottserver/nextcloud.nix b/hosts/schrottserver/nextcloud.nix deleted file mode 100644 index dd4e04c..0000000 --- a/hosts/schrottserver/nextcloud.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ pkgs, ... }: -{ - services.nextcloud = { - enable = true; - config = { - dbtype = "pgsql"; - dbuser = "nextcloud"; - dbhost = "/run/postgresql"; # nextcloud will add /.s.PGSQL.5432 by itself - dbname = "nextcloud"; - adminpassFile = "${../../secret-data/nextcloud-admin-pass}"; - adminuser = "root"; - }; - package = pkgs.nextcloud25; - extraApps = with pkgs.nextcloud25Packages.apps; { - inherit bookmarks calendar contacts news tasks; - }; - extraAppsEnable = true; - hostName = "wolke.schrottkatze.de"; - https = true; - }; - - services.postgresql = { - enable = true; - ensureDatabases = [ "nextcloud" ]; - ensureUsers = [ - { - name = "nextcloud"; - ensurePermissions."DATABASE nextcloud" = "ALL PRIVILEGES"; - } - ]; - }; - - # ensure that postgres is running *before* running the setup - systemd.services."nextcloud-setup" = { - requires = ["postgresql.service"]; - after = ["postgresql.service"]; - }; -} diff --git a/hosts/schrottserver/penpot.nix b/hosts/schrottserver/penpot.nix deleted file mode 100644 index 2e7f227..0000000 --- a/hosts/schrottserver/penpot.nix +++ /dev/null @@ -1,75 +0,0 @@ -{ pkgs, inputs, ... }: -{ - imports = [ inputs.arion.nixosModules.arion ]; - virtualisation.docker.enable = true; - virtualisation.arion = { - backend = "docker"; - projects.penpot.settings = { - networks.penpot.name = "penpot"; - services = { - "penpot-backend".service = { - image = "penpotapp/backend:latest"; - volumes = [ "/penpot_assets:/opt/data/assets" ]; - depends_on = [ "penpot-postgres" "penpot-redis" ]; - networks = [ "penpot" ]; - environment = { - "PENPOT_FLAGS" = "enable-registration enable-login-with-password disable-email-verification enable-smtp enable-prepl-server"; - "PENPOT_PREPL_HOST" = "0.0.0.0"; - - "PENPOT_PUBLIC_URI" = "https://pp.schrottkatze.de"; - - "PENPOT_DATABASE_URI" = "postgresql://penpot-postgres/penpot"; - "PENPOT_DATABASE_USERNAME" = "penpot"; - "PENPOT_DATABASE_PASSWORD" = "penpot"; - "PENPOT_REDIS_URI" = "redis://penpot-redis/0"; - - "PENPOT_ASSETS_STORAGE_BACKEND" = "assets-fs"; - "PENPOT_STORAGE_ASSETS_FS_DIRECTORY" = "/opt/data/assets"; - - "PENPOT_TELEMETRY_ENABLED" = "false"; - - "PENPOT_SMTP_DEFAULT_FROM" = "Penpot "; - "PENPOT_SMTP_DEFAULT_REPLY_TO" = "Penpot "; - "PENPOT_SMTP_HOST" = "smtp.migadu.com"; - "PENPOT_SMTP_PORT" = "587"; - "PENPOT_SMTP_USERNAME" = "noreply-pp@schrottkatze.de"; - "PENPOT_SMTP_PASSWORD" = "${builtins.readFile ../../secret-data/penpot-smtp-pass}"; - "PENPOT_SMTP_TLS" = "true"; - "PENPOT_SMTP_SSL" = "false"; - }; - }; - "penpot-frontend".service = { - image = "penpotapp/frontend:latest"; - ports = [ "9001:80" ]; - volumes = [ "/penpot_assets:/opt/data/assets" ]; - depends_on = [ "penpot-backend" "penpot-exporter" ]; - networks = [ "penpot" ]; - }; - "penpot-exporter".service = { - image = "penpotapp/exporter:latest"; - networks = [ "penpot" ]; - environment = { - "PENPOT_PUBLIC_URI" = "http://penpot-frontend"; - "PENPOT_REDIS_URI" = "redis://penpot-redis/0"; - }; - }; - "penpot-postgres".service = { - image = "postgres:15"; - stop_signal = "SIGINT"; - volumes = [ "/penpot_postgres_v15:/var/lib/postgresql/data" ]; - networks = [ "penpot" ]; - environment = { - "POSTGRES_INITDB_ARGS" = "--data-checksums"; - "POSTGRES_DB" = "penpot"; - "POSTGRES_USER" = "penpot"; - "POSTGRES_PASSWORD" = "penpot"; - }; - }; - "penpot-redis".service = { - image = "redis:7"; - networks = [ "penpot" ]; - }; - }; - }; - }; -} diff --git a/hosts/schrottserver/proxy.nix b/hosts/schrottserver/proxy.nix deleted file mode 100644 index 6e80e11..0000000 --- a/hosts/schrottserver/proxy.nix +++ /dev/null @@ -1,124 +0,0 @@ -{ inputs, config, pkgs, ... }: -{ - security.acme = { - acceptTerms = true; - defaults.email = "jade@schrottkatze.de"; - certs = { - "schrottkatze.de" = { - group = "nginx"; - keyType = "rsa4096"; - }; - "vw.schrottkatze.de" = { - group = "nginx"; - keyType = "rsa4096"; - }; - "wolke.schrottkatze.de" = { - group = "nginx"; - keyType = "rsa4096"; - }; - "s10e.de" = { - group = "nginx"; - keyType = "rsa4096"; - }; - "synapse.schrottkatze.de" = { - group = "nginx"; - keyType = "rsa4096"; - }; - "pp.schrottkatze.de" = { - group = "nginx"; - keyType = "rsa4096"; - }; - }; - }; - - environment.systemPackages = [ inputs.meowsite.packages."x86_64-linux".default inputs.gumseite.packages."x86_64-linux".default ]; - - services.nginx = { - enable = true; - - recommendedGzipSettings = true; - recommendedOptimisation = true; - recommendedProxySettings = true; - recommendedTlsSettings = true; - - virtualHosts = { - "schrottkatze.de" = { - forceSSL = true; - enableACME = true; - root = "${inputs.meowsite.packages."x86_64-linux".default}"; - }; - "vw.schrottkatze.de" = { - forceSSL = true; - enableACME = true; - locations."/" = { - proxyPass = "http://localhost:8812"; #changed the default rocket port due to some conflict - proxyWebsockets = true; - }; - locations."/notifications/hub" = { - proxyPass = "http://localhost:3012"; - proxyWebsockets = true; - }; - locations."/notifications/hub/negotiate" = { - proxyPass = "http://localhost:8812"; - proxyWebsockets = true; - }; - }; - "wolke.schrottkatze.de" = { - forceSSL = true; - enableACME = true; - }; - "pp.schrottkatze.de" = { - forceSSL = true; - enableACME = true; - locations."/" = { - proxyPass = "http://localhost:9001"; - proxyWebsockets = true; - }; - }; - "s10e.de" = { - forceSSL = true; - enableACME = true; - locations."/" = { - proxyPass = "http://127.0.0.1:8080$request_uri"; - }; - }; - "synapse.schrottkatze.de" = { - forceSSL = true; - enableACME = true; - http2 = true; - listen = [ - { - addr = "0.0.0.0"; - port = 443; - ssl = true; - } - { - addr = "[::]"; - port = 443; - ssl = true; - } - { - addr = "0.0.0.0"; - port = 8448; - ssl = true; - } - { - addr = "[::]"; - port = 8448; - ssl = true; - } - ]; - locations."~ ^(/_matrix|/_synapse/client)" = { - proxyPass = "http://localhost:8008"; - extraConfig = '' - proxy_set_header X-Forwarded-For $remote_addr; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_set_header Host $host; - client_max_body_size 2G; - ''; - }; - extraConfig = "proxy_http_version 1.1;"; - }; - }; - }; -} diff --git a/hosts/schrottserver/synapse.nix b/hosts/schrottserver/synapse.nix deleted file mode 100644 index 0d575a4..0000000 --- a/hosts/schrottserver/synapse.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ pkgs, ... }: -{ - services = { - matrix-synapse = { - enable = true; - settings = { - server_name = "synapse.schrottkatze.de"; - }; - }; - postgresql = { - enable = true; - initialScript = pkgs.writeText "synapse-init.sql" '' - CREATE ROLE "matrix-synapse"; - CREATE DATABASE "matrix-synapse" WITH OWNER "matrix-synapse" - TEMPLATE template0 - LC_COLLATE = "C" - LC_CTYPE = "C"; - ''; - - #initdbArgs = [ - #"--locale=C" - #"--encoding=UTF8" - #]; - ensureDatabases = [ "matrix-synapse" ]; - ensureUsers = [ - { - name = "matrix-synapse"; - ensurePermissions."DATABASE \"matrix-synapse\"" = "ALL PRIVILEGES"; - } - ]; - }; - }; -} diff --git a/hosts/schrottserver/vaultwarden.nix b/hosts/schrottserver/vaultwarden.nix deleted file mode 100644 index a9b4edf..0000000 --- a/hosts/schrottserver/vaultwarden.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ pkgs, ... }: -{ - services.vaultwarden = { - enable = true; - #backupDir = "/vw-backups"; - config = { - DATA_FOLDER = "/var/lib/bitwarden_rs/"; - DATABASE_URL = "/var/lib/bitwarden_rs/db.sqlite3"; - LOG_FILE = "/var/log/bitwarden"; - WEBSOCKET_ENABLED = true; - WEBSOCKET_ADDRESS = "0.0.0.0"; - WEBSOCKET_PORT = 3012; - SIGNUPS_VERIFY = true; - ROCKET_LOG = "debug"; - ENABLE_WAL = false; - ADMIN_TOKEN = builtins.readFile ../../secret-data/vaultwarden-admin-token; - DOMAIN = "https://vw.schrottkatze.de"; - SMTP_TIMEOUT = 15; - ROCKET_PORT = 8812; - }; - }; -} diff --git a/modules/default.nix b/modules/default.nix index d2b139e..068d43c 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -1,13 +1,10 @@ { ... }: { imports = [ - ./zellij.nix + ./shell ./desktop ./terminal.nix - ./neovim.nix - ./zsh.nix ./flatpak.nix ./firewall.nix - ./helix.nix ]; } diff --git a/modules/desktop/cloud.nix b/modules/desktop/cloud.nix index cc0f90e..7c45a3d 100644 --- a/modules/desktop/cloud.nix +++ b/modules/desktop/cloud.nix @@ -7,27 +7,11 @@ in with lib; { }; config = mkIf cfg.enable { home-manager.users.jade = { pkgs, ... }: { - # services.nextcloud-client = { - # enable = true; - # startInBackground = true; - # }; - programs.rbw = { - enable = true; - settings = { - base_url = "vw.schrottkatze.de"; - email = "jade@schrottkatze.de"; - }; - }; home.packages = with pkgs; [ fluent-reader bitwarden rofi-rbw ]; - xsession.windowManager.i3.config.startup = [ - { - command = "bitwarden"; - } - ]; }; }; } diff --git a/modules/desktop/creative.nix b/modules/desktop/creative.nix index 69bbe79..a7cd49e 100644 --- a/modules/desktop/creative.nix +++ b/modules/desktop/creative.nix @@ -1,28 +1,30 @@ -{ config, lib, pkgs, ... }: +{ pkgs, ... }: { + fonts.packages = with pkgs; [ + (nerdfonts.override { fonts = [ "FiraCode" ]; }) + montserrat + noto-fonts + atkinson-hyperlegible + arkpandora_ttf + liberation_ttf + ocr-a + ]; + fonts.fontDir.enable = true; + home-manager.users.jade = { pkgs, ... }: { + home.packages = with pkgs; [ + audacity + krita + gimp-with-plugins + inkscape-with-extensions + obs-studio + kdenlive + fspy + scribus -let cfg = config.jade.desktop.creative; -in with lib; { - options.jade.desktop.creative = { - enable = mkEnableOption "Enable creative software"; - }; - config = mkIf cfg.enable { - home-manager.users.jade = { pkgs, ... }: { - home.packages = with pkgs; [ - audacity - krita - gimp-with-plugins - inkscape-with-extensions - obs-studio - kdenlive - fspy - scribus + onlyoffice-bin - onlyoffice-bin - - digikam - darktable - rawtherapee - ]; - }; + digikam + darktable + rawtherapee + ]; }; } diff --git a/modules/desktop/default.nix b/modules/desktop/default.nix index a27ae18..ee31ec1 100644 --- a/modules/desktop/default.nix +++ b/modules/desktop/default.nix @@ -1,47 +1,20 @@ { config, lib, pkgs, ... }: let - cfg = config.jade.desktop; # window-screenshot = pkgs.writeTextFile "window-screenshot.nu" (builtins.readFile ../../other/scripts/desktop/window-screenshot.nu); window-screenshot = pkgs.writeShellScriptBin "window-screenshot.sh" (builtins.readFile ../../other/scripts/desktop/window-screenshot.sh); # desktop-ctl = pkgs.writeShellScriptBin "desktop-ctl.sh" (builtins.readFile ../scripts/desktop/desktop-ctl.sh); desktop-ctl = import ../../other/scripts/desktop/desktopctl.nix { inherit pkgs; }; - # search and open in browser - searchwolf = import ../../other/scripts/desktop/searchwolf.nix { inherit pkgs; }; - # permaclip - pc-get = pkgs.writeShellScriptBin "pc-get.sh" (builtins.readFile ../../other/scripts/desktop/permaclip/pc-get.sh); - pc-set = pkgs.writeShellScriptBin "pc-set.sh" (builtins.readFile ../../other/scripts/desktop/permaclip/pc-set.sh); - em-record = pkgs.writeShellScriptBin "em-record.sh" (builtins.readFile ../../other/scripts/desktop/macros/record.sh); - em-play = pkgs.writeShellScriptBin "em-play.sh" (builtins.readFile ../../other/scripts/desktop/macros/play.sh); - em-play-loop = pkgs.writeShellScriptBin "em-play-loop.sh" (builtins.readFile ../../other/scripts/desktop/macros/play-loop.sh); + # TODO: fix ocr screenshot script ocr-screenshot = pkgs.writeShellScriptBin "ocr-screenshot.sh" (builtins.readFile ../../other/scripts/desktop/ocr-screenshot.sh); # rofi calculator copied from https://github.com/barbuk/menu-qalc menu-qalc = pkgs.writeShellScriptBin "menu-qalc" (builtins.readFile ../../other/scripts/desktop/menu-qalc.sh); - #bitw = pkgs.buildGo118Module rec { - #pname = "bitw"; - #version = "0.1.0"; - #src = pkgs.fetchFromGitHub { - #owner = "mvdan"; - #repo = "bitw"; - #rev = "9da6ca0287ae8e4b1aa7fcdf7c4e8c2736718c3b"; - #sha256 = "sha256-qe9y6BEsfsEiPFXlM/SFliSd+2fnfDMHyw/O6EE5hpA="; - #}; - #nativeBuildInputs = with pkgs; [ gitMinimal ]; - #doCheck = false; - #vendorHash = "sha256-KQr0DtyH3xzlFwsDl3MGLRRLQC4+EtdTOG7IhmNCzV4="; - #vendorHash = null; - #GOFLAGS = "-mod=readonly"; - #proxyVendor = true; - #deleteVendor = true; - #preBuild = '' - #go mod vendor - #''; - #}; in with lib; { - imports = (mkIf cfg.enable [ + imports = [ ./audio.nix ./gaming.nix ./creative.nix # TODO: more fine grained choices, not every setup needs fspy or rawtherapee + ./dunst.nix ./compositing.nix ./ios-compat.nix ./syncthing.nix @@ -51,232 +24,114 @@ in with lib; { ./networking.nix ./polybar.nix ./social.nix - #./xkeysnail.nix ./mail.nix ./specific-hardware ./xmonad.nix - ./i3 - ]).content; - options.jade.desktop = { - enable = mkEnableOption "Enable the i3 setup"; - }; - config = mkIf cfg.enable { - fonts.packages = with pkgs; [ - (nerdfonts.override { fonts = [ "FiraCode" ]; }) - montserrat - noto-fonts - atkinson-hyperlegible - arkpandora_ttf - liberation_ttf - ocr-a - ]; - fonts.fontDir.enable = true; + ]; - i18n.inputMethod = { - enabled = "fcitx5"; - fcitx5.addons = with pkgs; [ - fcitx5-mozc - fcitx5-gtk - ]; - }; - - hardware.bluetooth.enable = true; - hardware.keyboard.uhk.enable = true; - #hardware.spacenavd.enable = true; - programs.seahorse.enable = true; - security.pam.services.jade.enableGnomeKeyring = true; - - virtualisation.libvirtd.enable = true; - - # environment.systemPackages = with pkgs; [ gnome.gdm ]; - services = { - printing.enable = true; - gnome.gnome-keyring.enable = true; - - xserver = { - layout = "us"; - xkbVariant = "altgr-intl"; - - enable = true; - - wacom.enable = true; - libinput = { - enable = true; - }; - - desktopManager = { - xterm.enable = false; - # gnome = { - # enable = true; - # }; - }; - - displayManager = { - defaultSession = "none+xmonad"; - gdm.enable = true; - }; - - windowManager.xmonad = { - enable = true; - }; - }; - - - }; - # sensible modules: - # - [x] audio - # - [x] compositing (picom configs) - # - [x] gaming (steam, lutris, prism...) - # - [x] cloud (pw manager, nextcloud, fluent reader) - # - [x] syncthing - # - [x] social (evolution, discord, matrix?) - # - [ ] set up mail accounts properly - # - [x] creative (obs, blender, gimp n shit) - # - [x] apple-stuff (ifuse etc) - # - [x] themeing - # - [x] vpn/networking stuff - # - [ ] keymap - # - [ ] seperate keymap by modules like autostarts - # - [x] kdeconnect - # - [x] polybar - # - [ ] bluetooth - # - [ ] spacenav support (with custom systemd service) - # - [ ] wacom config - # - [x] xkeysnail - # - [ ] oneko - # also useful: - # - every custom script its own flake n stuff - - programs.xss-lock = { - enable = true; - lockerCommand = "${pkgs.i3lock}/bin/i3lock"; - }; - - services.illum.enable = true; - services.avahi.enable = true; - - services.smartd = { - enable = true; - notifications.x11.enable = true; - notifications.test = true; - }; - - home-manager.users.jade = { pkgs, ... }: { - programs.bat = { - # TODO: more config - enable = true; - }; - programs.nushell = { - enable = true; - package = config.users.defaultUserShell; - configFile.source = ../../other/config.nu; - # envFile.text = '' - # use ~/.cache/starship/init.nu - # ''; - envFile.source = ../../other/env.nu; - extraConfig = '' - source ${pkgs.nu_scripts}/share/nu_scripts/modules/nix/nix.nu; - ''; - }; - programs.starship = { - enable = true; - enableNushellIntegration = true; - settings = { - format = "$all$directory$character"; - character = { - success_symbol = "[\\$](green)"; - error_symbol = "[X](red)"; - }; - git_branch = { - format = "\\[[$symbol$branch]($style)\\]"; - symbol = " "; - }; - git_status = { - format = "([\\[$all_status$ahead_behind\\]]($style))"; - }; - haskell = { - format = "\\[[$symbol($version)]($style)\\]"; - symbol = " "; - }; - cmd_duration = { - format = "\\[[⏱ $duration]($style)\\]"; - }; - nix_shell = { - format = "\\[[$symbol$state( \\($name\\))]($style)\\]"; - symbol = " "; - }; - rust = { - format = "\\[[$symbol($version)]($style)\\]"; - symbol = " "; - }; - }; - }; - services.dunst = { - enable = true; - settings = { - global = { - dmenu = "${pkgs.rofi}/bin/rofi -theme gruvbox-dark -dmenu -p dunst"; - browser = "${pkgs.librewolf}/bin/librewolf"; - mouse_left_click = "context"; - mouse_middle_click = "close_current"; - background = "#282828"; - foreground = "#ebdbb2"; - frame_color = "#504945"; - frame_width = 2; - }; - }; - }; - programs.rofi = { - enable = true; - theme = ../../other/rofi-themes/applauncher.rasi; - }; - home.packages = with pkgs; [ - spotifyd spotify-tui - - #nushell - nu_scripts direnv - - just bacon - - magic-wormhole-rs - - yt-dlp - - # carapace completer - carapace - - i3lock rofimoji feh xorg.xinput arandr flameshot - tesseract5 imagemagick xclip xmacro libwacom wacomtablet xorg.xev - - syncplay - - # categories - # filemanager - xfce.thunar xfce.tumbler xfce.thunar-archive-plugin gnome.file-roller - # media/file viewers - vlc mpv evince nomacs - - # from environment.systemPackages cleanup - font-manager xdotool xorg.xwininfo gparted librewolf firefox uhk-agent - cool-retro-term xdg-desktop-portal-gtk obsidian zettlr virt-manager - ddccontrol-db firebird-emu gitg gpick qdirstat ffmpeg_5 - - - # external - libnotify i3lock rofi rofimoji feh xorg.xinput arandr - flameshot tesseract5 imagemagick xclip kitty xmacro - brightnessctl drawing libqalculate ddgr jq - - # custom scripts - window-screenshot desktop-ctl em-record em-play em-play-loop - ocr-screenshot menu-qalc pc-get pc-set searchwolf - - # meow - oneko + i18n.inputMethod = { + enabled = "fcitx5"; + fcitx5.addons = with pkgs; [ + fcitx5-mozc + fcitx5-gtk ]; - xsession = { + }; + + programs.seahorse.enable = true; + security.pam.services.jade.enableGnomeKeyring = true; + + virtualisation.libvirtd.enable = true; + + services = { + printing.enable = true; + gnome.gnome-keyring.enable = true; + + xserver = { + enable = true; + + layout = "us"; + xkbVariant = "altgr-intl"; + + libinput = { enable = true; }; + + desktopManager = { + xterm.enable = false; + }; + + displayManager = { + defaultSession = "none+xmonad"; + gdm.enable = true; + }; + + windowManager.xmonad = { + enable = true; + }; + }; + + + }; + + programs.xss-lock = { + enable = true; + lockerCommand = "${pkgs.i3lock}/bin/i3lock"; + }; + + services.illum.enable = true; + services.avahi.enable = true; + + services.smartd = { + enable = true; + notifications.x11.enable = true; + notifications.test = true; + }; + + home-manager.users.jade = { pkgs, ... }: { + programs.bat = { + # TODO: more config + enable = true; + }; + programs.rofi = { + enable = true; + theme = ../../other/rofi-themes/applauncher.rasi; + }; + home.packages = with pkgs; [ + just bacon + + magic-wormhole-rs + + yt-dlp + + i3lock rofimoji feh xorg.xinput arandr flameshot + tesseract5 imagemagick xclip xmacro xorg.xev + + syncplay + + # filemanager + xfce.thunar xfce.tumbler xfce.thunar-archive-plugin gnome.file-roller + # media/file viewers + vlc mpv evince nomacs + + # from environment.systemPackages cleanup + font-manager xdotool xorg.xwininfo gparted librewolf firefox uhk-agent + cool-retro-term xdg-desktop-portal-gtk obsidian zettlr virt-manager + ddccontrol-db firebird-emu gitg gpick qdirstat ffmpeg_5 + + # external + libnotify i3lock rofi rofimoji feh xorg.xinput arandr + flameshot tesseract5 imagemagick xclip kitty xmacro + brightnessctl drawing libqalculate + + # custom scripts + window-screenshot desktop-ctl + ocr-screenshot menu-qalc + + # meow + oneko + ]; + xsession = { + enable = true; }; }; } diff --git a/modules/desktop/dunst.nix b/modules/desktop/dunst.nix new file mode 100644 index 0000000..a8042ee --- /dev/null +++ b/modules/desktop/dunst.nix @@ -0,0 +1,19 @@ +{ ... }: { + home-manager.users.jade = { pkgs, ... }: { + services.dunst = { + enable = true; + settings = { + global = { + dmenu = "${pkgs.rofi}/bin/rofi -theme gruvbox-dark -dmenu -p dunst"; + browser = "${pkgs.librewolf}/bin/librewolf"; + mouse_left_click = "context"; + mouse_middle_click = "close_current"; + background = "#282828"; + foreground = "#ebdbb2"; + frame_color = "#504945"; + frame_width = 2; + }; + }; + }; + }; +} diff --git a/modules/desktop/i3/default.nix b/modules/desktop/i3/default.nix deleted file mode 100644 index 2ef7562..0000000 --- a/modules/desktop/i3/default.nix +++ /dev/null @@ -1,170 +0,0 @@ -{ config, lib, pkgs, ... }: -let - searchwolf = import ../../../other/scripts/desktop/searchwolf.nix { inherit pkgs; }; - desktop-ctl = import ../../../other/scripts/desktop/desktopctl.nix { inherit pkgs; }; - pc-get = pkgs.writeShellScriptBin "pc-get.sh" (builtins.readFile ../../../other/scripts/desktop/permaclip/pc-get.sh); - pc-set = pkgs.writeShellScriptBin "pc-set.sh" (builtins.readFile ../../../other/scripts/desktop/permaclip/pc-set.sh); - em-record = pkgs.writeShellScriptBin "em-record.sh" (builtins.readFile ../../../other/scripts/desktop/macros/record.sh); - em-play = pkgs.writeShellScriptBin "em-play.sh" (builtins.readFile ../../../other/scripts/desktop/macros/play.sh); - em-play-loop = pkgs.writeShellScriptBin "em-play-loop.sh" (builtins.readFile ../../../other/scripts/desktop/macros/play-loop.sh); - ocr-screenshot = pkgs.writeShellScriptBin "ocr-screenshot.sh" (builtins.readFile ../../../other/scripts/desktop/ocr-screenshot.sh); - # rofi calculator copied from https://github.com/barbuk/menu-qalc - menu-qalc = pkgs.writeShellScriptBin "menu-qalc" (builtins.readFile ../../../other/scripts/desktop/menu-qalc.sh); -in with lib; { - options.jade.desktop.i3wm = { - enable = mkEnableOption "Enable i3wm"; - }; - config = mkIf config.jade.desktop.i3wm.enable { - services.xserver.windowManager.i3.enable = true; - home-manager.users.jade = { pkgs, ... }: { - xsession.windowManager.i3 = { - enable = true; - config = { - bars = []; - workspaceAutoBackAndForth = true; - focus = { - followMouse = false; - }; - # Startup {{{ - startup = [ - # wallpaper - { - command = "feh --bg-fill ${../../../other/wallpaper.jpg}"; - always = true; - notification = false; - } - - # meowmeowmeow - { - command = "pkill oneko; oneko -tofocus -tora -position +-1+5 -fg palevioletred3 -bg pink -name 'Rose the desktop kitty'"; - always = true; - } - ]; - # }}} - # Assigns {{{ - assigns = { - "1" = [ - { class = "discord"; } - { class = "nheko"; } - ]; - "2" = [ - { class = "librewolf"; } - ]; - }; - # }}} - # Keyboard shortcuts {{{ - modifier = "Mod4"; - modes = { - resize = with { - # mod = builtins.break config.xsession.windowManager.i3.config.modifier; - mod = builtins.break "Mod4"; - }; { - aaa = builtins.break "a"; - "${mod}+h" = "resize shrink width 10 px or 10 ppt"; - "${mod}+j" = "resize grow height 10 px or 10 ppt"; - "${mod}+k" = "resize shrink height 10 px or 10 ppt"; - "${mod}+l" = "resize grow width 10 px or 10 ppt"; - - "Return" = "mode default"; - "Escape" = "mode default"; - "${mod}+r" = "mode default"; - }; - }; - keybindings = with { - #mod = config.xsession.windowManager.i3.config.modifier; - mod = "Mod4"; - }; lib.mkOptionDefault { - # switch window focus - "${mod}+h" = "focus left"; - "${mod}+j" = "focus down"; - "${mod}+k" = "focus up"; - "${mod}+l" = "focus right"; - # move windows - "${mod}+Shift+h" = "move left"; - "${mod}+Shift+j" = "move down"; - "${mod}+Shift+k" = "move up"; - "${mod}+Shift+l" = "move right"; - # layout shit - "${mod}+shift+semicolon" = "split h"; - "${mod}+semicolon" = "split v"; - "${mod}+f" = "fullscreen toggle"; - "${mod}+Shift+w" = "layout tabbed"; - "${mod}+e" = "layout toggle split"; - "${mod}+Shift+space" = "floating toggle"; - # focus parents/children - "${mod}+Shift+a" = "focus parent"; - "${mod}+Shift+c" = "focus child"; - # screenshot - "${mod}+w" = "exec window-screenshot.sh"; - "${mod}+s" = "exec flameshot gui -c -p $HOME/Pictures/screenshots"; - "${mod}+a" = "exec flameshot screen -c -p $HOME/Pictures/screenshots"; - "${mod}+t" = "exec ocr-screenshot.sh"; - - # rofi fuckery - "${mod}+d" = "exec --no-startup-id rofi -show drun -theme ${../../../other/rofi-themes/applauncher.rasi}"; - "${mod}+space" = "exec --no-startup-id rofi -show combi -combi-show window#run -modes combi -theme ${../../../other/rofi-themes/applauncher.rasi}"; - "${mod}+i" = "exec --no-startup-id rofimoji -f alchemical_symbols anatolian_hieroglyphs emojis braille_patterns box_drawing chess_symbols emoticons geometric_shapes gothic greek_extended math mathematical_alphanumeric_symbols mathematical_operators miscellaneous_symbols miscellaneous_mathematical_symbols-a miscellaneous_mathematical_symbols-b miscellaneous_symbols_and_arrows miscellaneous_symbols_and_pictographs miscellaneous_technical modi modifier_tone_letters musical_symbols nerd_font number_forms shorthand_format_controls specials variation_selectors vertical_forms -a copy"; - "${mod}+Shift+e" = "exec --no-startup-id rofi -show \"desktopctl\" -modes \"desktopctl:${desktop-ctl.outPath}/bin/desktopctl\" -theme ${../../../other/rofi-themes/applauncher.rasi}"; - "${mod}+m" = "exec --no-startup-id menu-qalc"; - - "${mod}+o" = "exec --no-startup-id rofi -show searchwolf -modes \"searchwolf:${searchwolf.outPath}/bin/searchwolf\""; - - # audio - "XF86AudioRaiseVolume" = "exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status"; - "XF86AudioLowerVolume" = "exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status"; - "XF86AudioMute" = "exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status"; - "XF86AudioMicMute" = "exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status"; - - "XF86AudioNext" = "exec playerctl next"; - "XF86AudioPrev" = "exec playerctl previous"; - "XF86AudioPause" = "exec playerctl pause"; - "XF86AudioPlay" = "exec playerctl play"; - "XF86AudioStop" = "exec playerctl stop"; - - "XF86MonBrightnessUp" = "exec brightnessctl set 5%+"; - "XF86MonBrightnessDown" = "exec brightnessctl set 5%-"; - - "XF86KbdBrightnessUp" = "exec brillo -kA 10.0"; - "XF86KbdBrightnessDown" = "exec brillo -kU 10.0"; - - # macros - "${mod}+q" = "exec em-record.sh"; - "${mod}+p" = "exec em-play.sh"; - "${mod}+Shift+p" = "exec em-play-loop.sh"; - - # permaclip - "${mod}+c" = "exec rofi -show register -modes \"register:${pc-set.outPath}/bin/pc-set.sh\" -theme gruvbox-dark"; - "${mod}+v" = "exec rofi -show register -modes \"register:${pc-get.outPath}/bin/pc-get.sh\" -theme gruvbox-dark"; - }; - # }}} - # Visuals {{{ - fonts = { - names = [ "Atkinson Hyperlegible" ]; - style = "Regular"; - size = 9.0; - }; - gaps = { - #top = 24; - inner = 15; - outer = 0; - smartGaps = true; - smartBorders = "on"; - }; - colors = { - background = "#1d2021"; - focused = { background = "#282828"; border = "#504945"; childBorder = "#7c6f64"; indicator = "#504945"; text = "#ebdbb2"; }; - focusedInactive = { background = "#1d2021"; border = "#504945"; childBorder = "#665c54"; indicator = "#664c54"; text = "#d5c4a1"; }; - placeholder = { background = "#1d2021"; border = "#00ff00"; childBorder = "#504945"; indicator = "#504945"; text = "#928374"; }; - unfocused = { background = "#1d2021"; border = "#3c3836"; childBorder = "#504945"; indicator = "#504945"; text = "#bdae93"; }; - urgent = { background = "#9d0006"; border = "#cc241d"; childBorder = "#3c3836"; indicator = "#fb4943"; text = "#ebdbb2"; }; - }; - window = { - border = 2; - titlebar = false; - }; - # }}} - }; - }; - }; - }; -} diff --git a/modules/desktop/specific-hardware/default.nix b/modules/desktop/specific-hardware/default.nix index b21370c..7e629b4 100644 --- a/modules/desktop/specific-hardware/default.nix +++ b/modules/desktop/specific-hardware/default.nix @@ -2,5 +2,6 @@ { imports = [ ./spacenav.nix + ./wacom.nix ]; } diff --git a/modules/desktop/specific-hardware/spacenav.nix b/modules/desktop/specific-hardware/spacenav.nix index 25cd981..7f87d58 100644 --- a/modules/desktop/specific-hardware/spacenav.nix +++ b/modules/desktop/specific-hardware/spacenav.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, ... }: +{ pkgs, ... }: { environment.systemPackages = with pkgs; [ spacenavd diff --git a/modules/desktop/specific-hardware/wacom.nix b/modules/desktop/specific-hardware/wacom.nix index e69de29..bb9bb82 100644 --- a/modules/desktop/specific-hardware/wacom.nix +++ b/modules/desktop/specific-hardware/wacom.nix @@ -0,0 +1,10 @@ +{ ... }: { + services.xserver.wacom.enable = true; + home-manager.users.jade = { pkgs, ... }: { + home.packages = [ + # TODO: figure out if the previous enabled option depends on these anyway + pkgs.libwacom + pkgs.wacomtablet + ]; + }; +} diff --git a/modules/desktop/xmonad.nix b/modules/desktop/xmonad.nix index 79ece69..7af43aa 100644 --- a/modules/desktop/xmonad.nix +++ b/modules/desktop/xmonad.nix @@ -6,5 +6,12 @@ with lib; { enableContribAndExtras = true; config = ../../haskell/xmonad/xmonad.hs; }; + home.file.wallpaper = { + target = "Pictures/wallpaper.jpg"; + source = ../../other/wallpaper.jpg; + onChange = '' + feh --bg-fill ~/Pictures/wallpaper.jpg; + ''; + }; }; } diff --git a/modules/helix.nix b/modules/helix.nix deleted file mode 100644 index 5c61508..0000000 --- a/modules/helix.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ config, lib, ... }: - -let cfg = config.jade.helix; -in with lib; { - options.jade.helix = { - enable = mkEnableOption "Enable helix"; - }; - config = mkIf cfg.enable { - home-manager.users.jade = { pkgs, ... }: { - home = { - sessionVariables.EDITOR = "hx"; - packages = [ - pkgs.nil - pkgs.haskell-language-server - pkgs.nodePackages_latest.vscode-html-languageserver-bin - pkgs.nodePackages_latest.vscode-json-languageserver-bin - pkgs.nodePackages_latest.vscode-css-languageserver-bin - pkgs.nodePackages_latest.bash-language-server - ]; - }; - programs.helix = { - enable = true; - settings = { - theme = "gruvbox"; - editor = { - line-number = "relative"; - lsp.display-messages = true; - }; - keys.normal = { - space."=" = ":fmt"; - }; - }; - languages = { - "php" = { - name = "php"; - file-types = [ "php" ]; - language-server = { - command = "psalm"; - args = ["--language-server"]; - }; - }; - }; - }; - }; - }; -} diff --git a/modules/neovim.nix b/modules/neovim.nix deleted file mode 100644 index f91bb3c..0000000 --- a/modules/neovim.nix +++ /dev/null @@ -1,179 +0,0 @@ -{ config, lib, pkgs, ... }: - -let cfg = config.jade.neovim; -in with lib; { - options.jade.neovim = { - enable = mkEnableOption "Enable neovim"; - }; - config = mkIf cfg.enable { - home-manager.users.jade = { pkgs,... } : { - home.packages = with pkgs; [ - rust-analyzer - neovide - ]; - programs.neovim = { - enable = true; - defaultEditor = true; - viAlias = true; - vimAlias = true; - vimdiffAlias = true; - # Plugins {{{ - plugins = with pkgs.vimPlugins; [ - nerdtree-git-plugin - ctrlp-vim - vim-devicons - vim-nix - vim-pug - - statix - haskell-tools-nvim - - coc-rust-analyzer - coc-git - coc-fzf - coc-css - coc-yaml - coc-json - coc-html - coc-emmet - coc-vimlsp - coc-tsserver - { - plugin = toggleterm-nvim; - config = '' - lua require("toggleterm").setup{} - autocmd TermEnter term://*toggleterm#* - \ tnoremap exe v:count1 . "ToggleTerm" - - " By applying the mappings this way you can pass a count to your - " mapping to open a specific window. - " For example: 2 will open terminal 2 - nnoremap exe v:count1 . "ToggleTerm direction=float" - inoremap exe v:count1 . "ToggleTerm direction=float" - ''; - } - { - plugin = gruvbox-nvim; - config = "colorscheme gruvbox"; - } - { - plugin = nerdtree; - config = "nmap :NERDTreeToggle"; - } - { - plugin = nerdcommenter; - config = '' - vmap ++ NERDCommenterToggle - nmap ++ NERDCommenterToggle - ''; - } - ]; - # }}} - # Coc {{{ - coc = { - enable = true; - settings = { - rust-analyzer.server.path = "${pkgs.rust-analyzer}/bin/rust-analyzer"; - }; - pluginConfig = '' - let mapleader = "\" - - nmap gd (coc-definition) - nmap gy (coc-type-definition) - nmap gi (coc-implementation) - nmap gr (coc-references) - nnoremap K :call show_documentation() - nmap gr (coc-rename) - nmap ac (coc-codeaction) - nmap qf (coc-fix-current) - - - " Use tab for trigger completion with characters ahead and navigate. - " NOTE: There's always complete item selected by default, you may want to enable - " no select by `"suggest.noselect": true` in your configuration file. - " NOTE: Use command ':verbose imap ' to make sure tab is not mapped by - " other plugin before putting this into your config. - inoremap - \ coc#pum#visible() ? coc#pum#next(1) : - \ CheckBackspace() ? "\" : - \ coc#refresh() - inoremap coc#pum#visible() ? coc#pum#prev(1) : "\" - - if has('nvim-0.4.0') || has('patch-8.2.0750') - nnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" - nnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" - inoremap coc#float#has_scroll() ? "\=coc#float#scroll(1)\" : "\" - inoremap coc#float#has_scroll() ? "\=coc#float#scroll(0)\" : "\" - vnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" - vnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" - endif - - - " Make to accept selected completion item or notify coc.nvim to format - " u breaks current undo, please make your own choice. - inoremap coc#pum#visible() ? coc#pum#confirm() - \: "\u\\=coc#on_enter()\" - - function! CheckBackspace() abort - let col = col('.') - 1 - return !col || getline('.')[col - 1] =~# '\s' - endfunction - " Make to accept selected completion item or notify coc.nvim to format - " u breaks current undo, please make your own choice. - inoremap coc#pum#visible() ? coc#pum#confirm() - \: "\u\\=coc#on_enter()\" - - function! CheckBackspace() abort - let col = col('.') - 1 - return !col || getline('.')[col - 1] =~# '\s' - endfunction - - " Use to trigger completion. - if has('nvim') - inoremap coc#refresh() - else - inoremap coc#refresh() - endif - - nmap rn (coc-rename) - ''; - }; - # }}} - extraConfig = '' - " neovide - let g:neovide_refresh_rate_idle=5 - let g:neovide_cursor_animation_length=0.1 - let g:neovide_cursor_trail_size=0.3 - let g:neovide_cursor_vfx_mode="railgun" - let g:neovide_remember_window_size = v:false - - set guifont=FiraCode\ Nerd\ Font:h11 - set fdm=marker - - nmap H _ - vmap H _ - - nmap L $ - vmap L $ - - " terminal normal mode - tnoremap - - " j/k move virtual lines (wrapped) - noremap j (v:count == 0 ? 'gj' : 'j') - noremap k (v:count == 0 ? 'gk' : 'k') - - set relativenumber - set number - - set smarttab - set cindent - set tabstop=4 - set shiftwidth=4 - - set foldmethod=syntax - ''; - }; - }; - }; -} diff --git a/modules/shell/carapace.nix b/modules/shell/carapace.nix new file mode 100644 index 0000000..0890d1d --- /dev/null +++ b/modules/shell/carapace.nix @@ -0,0 +1,7 @@ +{ ... }: { + home-manager.users.jade = { pkgs, ... }: { + programs.carapace = { + enable = true; + }; + }; +} diff --git a/modules/shell/default.nix b/modules/shell/default.nix new file mode 100644 index 0000000..17fb426 --- /dev/null +++ b/modules/shell/default.nix @@ -0,0 +1,10 @@ +{ ... }: { + imports = [ + ./helix.nix + ./nu.nix + ./starship.nix + ./zellij.nix + ./carapace.nix + ./direnv.nix + ]; +} diff --git a/modules/shell/direnv.nix b/modules/shell/direnv.nix new file mode 100644 index 0000000..cdcdd98 --- /dev/null +++ b/modules/shell/direnv.nix @@ -0,0 +1,8 @@ +{ ... }: { + home-manager.users.jade = { pkgs, ... }: { + programs.direnv = { + enable = true; + nix-direnv.enable = true; + }; + }; +} diff --git a/modules/shell/helix.nix b/modules/shell/helix.nix new file mode 100644 index 0000000..e49d8b3 --- /dev/null +++ b/modules/shell/helix.nix @@ -0,0 +1,39 @@ +{ config, ... }: +{ + home-manager.users.jade = { pkgs, ... }: { + home = { + sessionVariables.EDITOR = "hx"; + packages = [ + pkgs.nil + pkgs.haskell-language-server + pkgs.nodePackages_latest.vscode-html-languageserver-bin + pkgs.nodePackages_latest.vscode-json-languageserver-bin + pkgs.nodePackages_latest.vscode-css-languageserver-bin + pkgs.nodePackages_latest.bash-language-server + ]; + }; + programs.helix = { + enable = true; + settings = { + theme = "gruvbox"; + editor = { + line-number = "relative"; + lsp.display-messages = true; + }; + keys.normal = { + space."=" = ":fmt"; + }; + }; + languages = { + "php" = { + name = "php"; + file-types = [ "php" ]; + language-server = { + command = "psalm"; + args = ["--language-server"]; + }; + }; + }; + }; + }; +} diff --git a/modules/shell/nu.nix b/modules/shell/nu.nix new file mode 100644 index 0000000..4b9f206 --- /dev/null +++ b/modules/shell/nu.nix @@ -0,0 +1,16 @@ +{ config, ... }: { + home-manager.users.jade = { pkgs, ... }: { + programs.nushell = { + enable = true; + package = config.users.defaultUserShell; + configFile.source = ../../other/config.nu; + envFile.source = ../../other/env.nu; + extraConfig = '' + source ${pkgs.nu_scripts}/share/nu_scripts/modules/nix/nix.nu; + ''; + }; + programs.starship.enableNushellIntegration = true; + programs.carapace.enableNushellIntegration = true; + programs.direnv.enableNushellIntegration = true; + }; +} diff --git a/modules/shell/starship.nix b/modules/shell/starship.nix new file mode 100644 index 0000000..f6338d0 --- /dev/null +++ b/modules/shell/starship.nix @@ -0,0 +1,36 @@ +{ ... }: { + home-manager.users.jade = { pkgs, ... }: { + programs.starship = { + enable = true; + settings = { + format = "$all$directory$character"; + character = { + success_symbol = "[\\$](green)"; + error_symbol = "[X](red)"; + }; + git_branch = { + format = "\\[[$symbol$branch]($style)\\]"; + symbol = " "; + }; + git_status = { + format = "([\\[$all_status$ahead_behind\\]]($style))"; + }; + haskell = { + format = "\\[[$symbol($version)]($style)\\]"; + symbol = " "; + }; + cmd_duration = { + format = "\\[[⏱ $duration]($style)\\]"; + }; + nix_shell = { + format = "\\[[$symbol$state( \\($name\\))]($style)\\]"; + symbol = " "; + }; + rust = { + format = "\\[[$symbol($version)]($style)\\]"; + symbol = " "; + }; + }; + }; + }; +} diff --git a/modules/shell/zellij.nix b/modules/shell/zellij.nix new file mode 100644 index 0000000..0bd88e5 --- /dev/null +++ b/modules/shell/zellij.nix @@ -0,0 +1,35 @@ +{ config, lib, ... }: +{ + home-manager.users.jade = { pkgs, ... }: { + home.file = { + zellij-forgot = { + target = ".config/zellij/plugins/zellij-forgot.wasm"; + source = builtins.fetchurl "https://github.com/karimould/zellij-forgot/releases/download/0.2.0/zellij_forgot.wasm"; + }; + monocle = { + target = ".config/zellij/plugins/monocle.wasm"; + source = builtins.fetchurl "https://github.com/imsnif/monocle/releases/download/0.37.2/monocle.wasm"; + }; + }; + programs.zellij = { + enable = true; + settings = { + theme = "gruvbox-dark"; + themes.gruvbox-dark = { + fg = "#d5c4a1"; + bg = "#282828"; + black = "#3C3836"; + red = "#CC241D"; + green = "#98971A"; + yellow = "#D79921"; + blue = "#3C8588"; + magenta = "#B16286"; + cyan = "#689D6A"; + white = "#ebdbb2"; + orange = "#D65D0E"; + }; + pane_frames = false; + }; + }; + }; +} diff --git a/modules/zellij.nix b/modules/zellij.nix deleted file mode 100644 index b4a86ab..0000000 --- a/modules/zellij.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ config, lib, ... }: -let cfg = config.jade.zellij; -in with lib; { - options.jade.zellij= { - enable = mkEnableOption "Enable the Zellij multiplexer"; - }; - config = mkIf cfg.enable { - home-manager.users.jade = { pkgs, ... }: { - home.file = { - zellij-forgot = { - target = ".config/zellij/plugins/zellij-forgot.wasm"; - source = builtins.fetchurl "https://github.com/karimould/zellij-forgot/releases/download/0.2.0/zellij_forgot.wasm"; - }; - monocle = { - target = ".config/zellij/plugins/monocle.wasm"; - source = builtins.fetchurl "https://github.com/imsnif/monocle/releases/download/0.37.2/monocle.wasm"; - }; - }; - programs.zellij = { - enable = true; - settings = { - theme = "gruvbox-dark"; - themes.gruvbox-dark = { - fg = "#d5c4a1"; - bg = "#282828"; - black = "#3C3836"; - red = "#CC241D"; - green = "#98971A"; - yellow = "#D79921"; - blue = "#3C8588"; - magenta = "#B16286"; - cyan = "#689D6A"; - white = "#ebdbb2"; - orange = "#D65D0E"; - }; - # keybinds = { - # session = { - # "bind \"o\"" = { - # LaunchOrFocusPlugin = ["file:/home/jade/.config/zellij/plugins/monocle.wasm" { floating = true; }]; - # }; - # }; - # }; - pane_frames = false; - }; - }; - }; - }; -} diff --git a/modules/zsh.nix b/modules/zsh.nix deleted file mode 100644 index 3dca73a..0000000 --- a/modules/zsh.nix +++ /dev/null @@ -1,90 +0,0 @@ -{ config, lib, pkgs, ... }: - -let cfg = config.jade.zsh; -in with lib; { - options.jade.zsh = { - enable = mkEnableOption "Enable zsh"; - }; - config = mkIf cfg.enable { - home-manager.users.jade = { pkgs,... } : { - home.packages = with pkgs; [ - thefuck - ]; - home.sessionVariables = { - "NEOVIDE_MULTIGRID" = "true"; - }; - programs.direnv = { - enable = true; - enableZshIntegration = true; - }; - programs.zsh = { - enable = true; - enableAutosuggestions = true; - enableSyntaxHighlighting = true; - autocd = true; - defaultKeymap = "viins"; - dotDir = ".config/zsh"; - history = { - extended = true; - save = 100000; - size = 100000; - }; - shellAliases = { - sudo = "sudo "; - v = "nvim"; - - s = "kitty +kitten ssh"; - - termsize = "echo \"width: $(tput cols)\nheight: $(tput lines)\""; - batstate = "echo \"Charge state: $(cat /sys/class/power_supply/BAT0/capacity)%\""; - clear = "clear;neofetch"; - bdin = "betterdiscordctl install && killall Discord && Discord & disown"; - upg = "paru -Syu --skipreview --noconfirm && flatpak upgrade && rustup upgrade"; - - grepo = "cd $HOME/Documents/repos && ls"; - gnix = "cd $HOME/nix-configs"; - - slol = "while true;do \\clear;sl --help | lolcat;done;"; - - # localhost.run - lhr = "ssh -R 80:localhost:8080 nokey@localhost.run"; - sshrpi = "ssh jade@192.168.178.111"; - - # cargo - cr = "cargo run"; - cb = "cargo build"; - cf = "cargo fmt"; - cfx = "cargo fix"; - cl = "cargo clippy"; - cbr = "cargo build --release"; - - # fucking around - "" = "nvim"; - "grammar" = "polymc"; - "minecraft" = "polymc"; - }; - oh-my-zsh = { - enable = true; - plugins = [ - "git" "sudo" "colored-man-pages" "zsh-interactive-cd" "branch" - "colorize" "command-not-found" "common-aliases" "rsync" "rust" - "thefuck" - ]; - theme = "fox"; - }; - initExtra = '' - # file endings - alias -s {pdf,PDF}="evince" - alias -s {jpg,JPG,png,PNG}="kitty +kitten icat" - alias -s {ods,ODS,odt,ODT,odp,ODP,doc,DOC,docx,DOCX,xls,XLS,xlsx,XLSX,xlsm,XLSM,ppt,PPT,pptx,PPTX,csv,CSV}='libreoffice' - alias -s {html,HTML}="librewolf" - alias -s {mp4,MP4,mov,MOV,mkv,MKV}='vlc' - alias -s {zip,ZIP,war,WAR}="unzip -l" - alias -s {jar,JAR}="java -jar" - alias -s gz="tar -tf" - alias -s {tgz,TGZ}="tar -tf" - ''; - }; - }; - }; -} diff --git a/other/config.nu b/other/config.nu index 7158898..46b4f6f 100644 --- a/other/config.nu +++ b/other/config.nu @@ -133,9 +133,9 @@ let light_theme = { } # External completer example -let carapace_completer = {|spans| - carapace $spans.0 nushell $spans | from json -} +# let carapace_completer = {|spans| +# carapace $spans.0 nushell $spans | from json +# } # The default config record. This is where much of your global configuration is setup. $env.config = { @@ -218,7 +218,7 @@ $env.config = { external: { enable: true # set to false to prevent nushell looking into $env.PATH to find more suggestions, `false` recommended for WSL users as this look up may be very slow max_results: 100 # setting it lower can improve completion performance at the cost of omitting some options - completer: $carapace_completer # check 'carapace_completer' above as an example + # completer: $carapace_completer # check 'carapace_completer' above as an example } } @@ -245,23 +245,6 @@ $env.config = { render_right_prompt_on_last_line: false # true or false to enable or disable right prompt to be rendered on last line of the prompt. hooks: { - pre_prompt: [{ || - let direnv = (direnv export json | from json | default {}) - if ($direnv | is-empty) { - return - } - $direnv - | items {|key, value| - { - key: $key - value: (if $key in $env.ENV_CONVERSIONS { - do ($env.ENV_CONVERSIONS | get $key | get from_string) $value - } else { - $value - }) - } - } | transpose -ird | load-env - }] # run before the prompt is shown pre_execution: [{ null }] # run before the repl input is run env_change: { PWD: [{|before, after| null }] # run if the PWD environment is different since the last repl input @@ -816,3 +799,4 @@ def lcr [ alias gnix = cd ~/nix-configs; alias grepo = cd ~/Documents/repos; alias wh = wormhole-rs; +alias gst = git status; diff --git a/other/scripts/desktop/permaclip/pc-get.sh b/other/scripts/desktop/permaclip/pc-get.sh deleted file mode 100644 index 8f83712..0000000 --- a/other/scripts/desktop/permaclip/pc-get.sh +++ /dev/null @@ -1,15 +0,0 @@ -# create ~/permaclip if it doesnt exist already -mkdir -p $HOME/permaclip - -tr_name=$(echo ${@% (*} | xargs) -if [ x"$tr_name" != x"" ]; then - nohup bash -c "xclip -selection c -i $HOME/permaclip/${tr_name% (*}" > /dev/null - exit 0 -fi - -echo -e "\0markup-rows\x1ftrue" - -for reg in $(ls ~/permaclip); do - content=$(cat ~/permaclip/$reg) - echo -e "$reg (${content:0:50}...)" -done diff --git a/other/scripts/desktop/permaclip/pc-set.sh b/other/scripts/desktop/permaclip/pc-set.sh deleted file mode 100644 index c009170..0000000 --- a/other/scripts/desktop/permaclip/pc-set.sh +++ /dev/null @@ -1,16 +0,0 @@ -# create ~/permaclip if it doesnt exist already -mkdir -p $HOME/permaclip - -tr_name=$(echo $@ | xargs) -if [ x"$tr_name" != x"" ]; then - tr_name="${tr_name% (*}" - clipdata=$(xclip -selection c -o) - echo "$clipdata" > $HOME/permaclip/$tr_name -fi - -echo -e "\0markup-rows\x1ftrue" - -for reg in $(ls ~/permaclip); do - content=$(cat ~/permaclip/$reg) - echo -e "$reg (${content:0:30})" -done diff --git a/other/scripts/desktop/searchwolf.nix b/other/scripts/desktop/searchwolf.nix deleted file mode 100644 index 2f7a9e7..0000000 --- a/other/scripts/desktop/searchwolf.nix +++ /dev/null @@ -1,2 +0,0 @@ -{ pkgs, ... }: -pkgs.writeShellScriptBin "searchwolf" (builtins.readFile ./searchwolf.sh) diff --git a/other/scripts/desktop/searchwolf.sh b/other/scripts/desktop/searchwolf.sh deleted file mode 100755 index 58dbafe..0000000 --- a/other/scripts/desktop/searchwolf.sh +++ /dev/null @@ -1,25 +0,0 @@ -if [ x"$@" = x"exit" ]; then - exit 0 -fi - -case $ROFI_RETV in -0) - ;; -1) - val=${@%%.*} - res=$(echo $ROFI_DATA | jq -r ".[$val]" ) - coproc ( librewolf --new-tab $res > /dev/null 2>&1 ) - exit 0 - ;; -2) - ddgrout=$(ddgr --json --num=25 "$@" --url-handler 'librewolf') - - for i in $(echo $ddgrout | jq -r 'keys | @sh'); do - title=$(echo $ddgrout | jq -r .[$i].title) - url=$(echo $ddgrout | jq -r .[$i].url) - echo "$i. $title ($url)" - done - - echo -e "\0data\x1f$(echo $ddgrout | jq -r .[].url | jq -sRc '. | split("\n") | [ .[] | select(length > 0) ]')" - ;; -esac