rewrite and refactor a lot, delete redundant configs
This commit is contained in:
parent
ca61775d84
commit
c191adcc99
44 changed files with 334 additions and 1607 deletions
12
common.nix
12
common.nix
|
@ -27,7 +27,7 @@ with builtins;
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
systemPackages = with pkgs; [
|
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
|
jdk libsecret gh nix-prefetch-scripts fzf glab ripgrep
|
||||||
|
@ -93,9 +93,12 @@ with builtins;
|
||||||
|
|
||||||
boot.kernel.sysctl."vm.max_map_count" = 2147483642;
|
boot.kernel.sysctl."vm.max_map_count" = 2147483642;
|
||||||
|
|
||||||
hardware.opengl.enable = true;
|
hardware = {
|
||||||
|
opengl.enable = true;
|
||||||
hardware.uinput.enable = true;
|
uinput.enable = true;
|
||||||
|
bluetooth.enable = true;
|
||||||
|
keyboard.uhk.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
security.rtkit.enable = true;
|
security.rtkit.enable = true;
|
||||||
|
|
||||||
|
@ -113,7 +116,6 @@ users.users.jade = {
|
||||||
algorithm = "zstd";
|
algorithm = "zstd";
|
||||||
};
|
};
|
||||||
|
|
||||||
# users.defaultUserShell = pkgs.nushell.override { additionalFeatures = (p: p ++ ["dataframe" "extra"]); };
|
|
||||||
users.defaultUserShell = pkgs.nushellFull;
|
users.defaultUserShell = pkgs.nushellFull;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -86,8 +86,6 @@ myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $
|
||||||
, ((modm, xK_m), spawn "menu-qalc -- -theme gruvbox-dark")
|
, ((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_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
|
-- screenshotting
|
||||||
-- TODO: Fix/rewrite window-screenshot.sh
|
-- TODO: Fix/rewrite window-screenshot.sh
|
||||||
, ((modm, xK_w), spawn "window-screenshot.nu")
|
, ((modm, xK_w), spawn "window-screenshot.nu")
|
||||||
|
@ -281,6 +279,7 @@ myStartupHook = do
|
||||||
spawn "pkill volumeicon; volumeicon"
|
spawn "pkill volumeicon; volumeicon"
|
||||||
spawn "pkill nm-applet; nm-applet"
|
spawn "pkill nm-applet; nm-applet"
|
||||||
spawn "mullvad-vpn --background"
|
spawn "mullvad-vpn --background"
|
||||||
|
spawn "feh --bg-fill ~/Pictures/wallpaper.jpg"
|
||||||
setDefaultKeyRemap myRemaps [myRemaps]
|
setDefaultKeyRemap myRemaps [myRemaps]
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -31,9 +31,7 @@ in {
|
||||||
jade = {
|
jade = {
|
||||||
flatpak.enable = true;
|
flatpak.enable = true;
|
||||||
desktop = {
|
desktop = {
|
||||||
enable = true;
|
|
||||||
compositing.enable = true;
|
compositing.enable = true;
|
||||||
creative.enable = true;
|
|
||||||
syncthing.enable = true;
|
syncthing.enable = true;
|
||||||
kdeconnect.enable = true;
|
kdeconnect.enable = true;
|
||||||
cloud.enable = true;
|
cloud.enable = true;
|
||||||
|
@ -41,10 +39,7 @@ in {
|
||||||
mail.enable = true;
|
mail.enable = true;
|
||||||
gaming.enable = true;
|
gaming.enable = true;
|
||||||
};
|
};
|
||||||
helix.enable = true;
|
|
||||||
zellij.enable = true;
|
|
||||||
terminal.enable = true;
|
terminal.enable = true;
|
||||||
# zsh.enable = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
hardware.trackpoint = {
|
hardware.trackpoint = {
|
||||||
|
|
|
@ -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"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -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";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
|
@ -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.<interface>.useDHCP`.
|
|
||||||
networking.useDHCP = lib.mkDefault true;
|
|
||||||
# networking.interfaces.enp1s0.useDHCP = lib.mkDefault true;
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux";
|
|
||||||
}
|
|
|
@ -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";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -31,9 +31,7 @@
|
||||||
jade = {
|
jade = {
|
||||||
flatpak.enable = true;
|
flatpak.enable = true;
|
||||||
desktop = {
|
desktop = {
|
||||||
enable = true;
|
|
||||||
compositing.enable = true;
|
compositing.enable = true;
|
||||||
creative.enable = true;
|
|
||||||
syncthing.enable = true;
|
syncthing.enable = true;
|
||||||
kdeconnect.enable = true;
|
kdeconnect.enable = true;
|
||||||
cloud.enable = true;
|
cloud.enable = true;
|
||||||
|
@ -42,10 +40,7 @@
|
||||||
ios-compat.enable = true;
|
ios-compat.enable = true;
|
||||||
mail.enable = true;
|
mail.enable = true;
|
||||||
};
|
};
|
||||||
zellij.enable = true;
|
|
||||||
terminal.enable = true;
|
terminal.enable = true;
|
||||||
helix.enable = true;
|
|
||||||
zsh.enable = true;
|
|
||||||
};
|
};
|
||||||
boot = {
|
boot = {
|
||||||
loader = {
|
loader = {
|
||||||
|
|
|
@ -62,9 +62,7 @@ in {
|
||||||
jade = {
|
jade = {
|
||||||
flatpak.enable = true;
|
flatpak.enable = true;
|
||||||
desktop = {
|
desktop = {
|
||||||
enable = true;
|
|
||||||
compositing.enable = true;
|
compositing.enable = true;
|
||||||
creative.enable = true;
|
|
||||||
syncthing.enable = true;
|
syncthing.enable = true;
|
||||||
kdeconnect.enable = true;
|
kdeconnect.enable = true;
|
||||||
cloud.enable = true;
|
cloud.enable = true;
|
||||||
|
|
|
@ -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?
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -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.<interface>.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;
|
|
||||||
}
|
|
|
@ -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";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,8 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
environment.systemPackages = with pkgs; [ murmur ];
|
|
||||||
services.murmur = {
|
|
||||||
enable = true;
|
|
||||||
registerHostname = "mumble.schrottkatze.de";
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -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"];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -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 <noreply-pp@schrottkatze.de>";
|
|
||||||
"PENPOT_SMTP_DEFAULT_REPLY_TO" = "Penpot <noreply-pp@schrottkatze.de>";
|
|
||||||
"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" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -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;";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -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";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -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;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,13 +1,10 @@
|
||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./zellij.nix
|
./shell
|
||||||
./desktop
|
./desktop
|
||||||
./terminal.nix
|
./terminal.nix
|
||||||
./neovim.nix
|
|
||||||
./zsh.nix
|
|
||||||
./flatpak.nix
|
./flatpak.nix
|
||||||
./firewall.nix
|
./firewall.nix
|
||||||
./helix.nix
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,27 +7,11 @@ in with lib; {
|
||||||
};
|
};
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
home-manager.users.jade = { pkgs, ... }: {
|
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; [
|
home.packages = with pkgs; [
|
||||||
fluent-reader
|
fluent-reader
|
||||||
bitwarden
|
bitwarden
|
||||||
rofi-rbw
|
rofi-rbw
|
||||||
];
|
];
|
||||||
xsession.windowManager.i3.config.startup = [
|
|
||||||
{
|
|
||||||
command = "bitwarden";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,14 @@
|
||||||
{ config, lib, pkgs, ... }:
|
{ pkgs, ... }: {
|
||||||
|
fonts.packages = with pkgs; [
|
||||||
let cfg = config.jade.desktop.creative;
|
(nerdfonts.override { fonts = [ "FiraCode" ]; })
|
||||||
in with lib; {
|
montserrat
|
||||||
options.jade.desktop.creative = {
|
noto-fonts
|
||||||
enable = mkEnableOption "Enable creative software";
|
atkinson-hyperlegible
|
||||||
};
|
arkpandora_ttf
|
||||||
config = mkIf cfg.enable {
|
liberation_ttf
|
||||||
|
ocr-a
|
||||||
|
];
|
||||||
|
fonts.fontDir.enable = true;
|
||||||
home-manager.users.jade = { pkgs, ... }: {
|
home-manager.users.jade = { pkgs, ... }: {
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
audacity
|
audacity
|
||||||
|
@ -24,5 +27,4 @@ in with lib; {
|
||||||
rawtherapee
|
rawtherapee
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,47 +1,20 @@
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.jade.desktop;
|
|
||||||
# window-screenshot = pkgs.writeTextFile "window-screenshot.nu" (builtins.readFile ../../other/scripts/desktop/window-screenshot.nu);
|
# 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);
|
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 = pkgs.writeShellScriptBin "desktop-ctl.sh" (builtins.readFile ../scripts/desktop/desktop-ctl.sh);
|
||||||
desktop-ctl = import ../../other/scripts/desktop/desktopctl.nix { inherit pkgs; };
|
desktop-ctl = import ../../other/scripts/desktop/desktopctl.nix { inherit pkgs; };
|
||||||
# search and open in browser
|
# TODO: fix ocr screenshot script
|
||||||
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);
|
|
||||||
ocr-screenshot = pkgs.writeShellScriptBin "ocr-screenshot.sh" (builtins.readFile ../../other/scripts/desktop/ocr-screenshot.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
|
# rofi calculator copied from https://github.com/barbuk/menu-qalc
|
||||||
menu-qalc = pkgs.writeShellScriptBin "menu-qalc" (builtins.readFile ../../other/scripts/desktop/menu-qalc.sh);
|
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; {
|
in with lib; {
|
||||||
imports = (mkIf cfg.enable [
|
imports = [
|
||||||
./audio.nix
|
./audio.nix
|
||||||
./gaming.nix
|
./gaming.nix
|
||||||
./creative.nix # TODO: more fine grained choices, not every setup needs fspy or rawtherapee
|
./creative.nix # TODO: more fine grained choices, not every setup needs fspy or rawtherapee
|
||||||
|
./dunst.nix
|
||||||
./compositing.nix
|
./compositing.nix
|
||||||
./ios-compat.nix
|
./ios-compat.nix
|
||||||
./syncthing.nix
|
./syncthing.nix
|
||||||
|
@ -51,26 +24,10 @@ in with lib; {
|
||||||
./networking.nix
|
./networking.nix
|
||||||
./polybar.nix
|
./polybar.nix
|
||||||
./social.nix
|
./social.nix
|
||||||
#./xkeysnail.nix
|
|
||||||
./mail.nix
|
./mail.nix
|
||||||
./specific-hardware
|
./specific-hardware
|
||||||
./xmonad.nix
|
./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 = {
|
i18n.inputMethod = {
|
||||||
enabled = "fcitx5";
|
enabled = "fcitx5";
|
||||||
|
@ -80,35 +37,27 @@ in with lib; {
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
hardware.bluetooth.enable = true;
|
|
||||||
hardware.keyboard.uhk.enable = true;
|
|
||||||
#hardware.spacenavd.enable = true;
|
|
||||||
programs.seahorse.enable = true;
|
programs.seahorse.enable = true;
|
||||||
security.pam.services.jade.enableGnomeKeyring = true;
|
security.pam.services.jade.enableGnomeKeyring = true;
|
||||||
|
|
||||||
virtualisation.libvirtd.enable = true;
|
virtualisation.libvirtd.enable = true;
|
||||||
|
|
||||||
# environment.systemPackages = with pkgs; [ gnome.gdm ];
|
|
||||||
services = {
|
services = {
|
||||||
printing.enable = true;
|
printing.enable = true;
|
||||||
gnome.gnome-keyring.enable = true;
|
gnome.gnome-keyring.enable = true;
|
||||||
|
|
||||||
xserver = {
|
xserver = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
layout = "us";
|
layout = "us";
|
||||||
xkbVariant = "altgr-intl";
|
xkbVariant = "altgr-intl";
|
||||||
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
wacom.enable = true;
|
|
||||||
libinput = {
|
libinput = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
desktopManager = {
|
desktopManager = {
|
||||||
xterm.enable = false;
|
xterm.enable = false;
|
||||||
# gnome = {
|
|
||||||
# enable = true;
|
|
||||||
# };
|
|
||||||
};
|
};
|
||||||
|
|
||||||
displayManager = {
|
displayManager = {
|
||||||
|
@ -123,29 +72,6 @@ in with lib; {
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
# 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 = {
|
programs.xss-lock = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -166,91 +92,22 @@ in with lib; {
|
||||||
# TODO: more config
|
# TODO: more config
|
||||||
enable = true;
|
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 = {
|
programs.rofi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
theme = ../../other/rofi-themes/applauncher.rasi;
|
theme = ../../other/rofi-themes/applauncher.rasi;
|
||||||
};
|
};
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
spotifyd spotify-tui
|
|
||||||
|
|
||||||
#nushell
|
|
||||||
nu_scripts direnv
|
|
||||||
|
|
||||||
just bacon
|
just bacon
|
||||||
|
|
||||||
magic-wormhole-rs
|
magic-wormhole-rs
|
||||||
|
|
||||||
yt-dlp
|
yt-dlp
|
||||||
|
|
||||||
# carapace completer
|
|
||||||
carapace
|
|
||||||
|
|
||||||
i3lock rofimoji feh xorg.xinput arandr flameshot
|
i3lock rofimoji feh xorg.xinput arandr flameshot
|
||||||
tesseract5 imagemagick xclip xmacro libwacom wacomtablet xorg.xev
|
tesseract5 imagemagick xclip xmacro xorg.xev
|
||||||
|
|
||||||
syncplay
|
syncplay
|
||||||
|
|
||||||
# categories
|
|
||||||
# filemanager
|
# filemanager
|
||||||
xfce.thunar xfce.tumbler xfce.thunar-archive-plugin gnome.file-roller
|
xfce.thunar xfce.tumbler xfce.thunar-archive-plugin gnome.file-roller
|
||||||
# media/file viewers
|
# media/file viewers
|
||||||
|
@ -261,15 +118,14 @@ in with lib; {
|
||||||
cool-retro-term xdg-desktop-portal-gtk obsidian zettlr virt-manager
|
cool-retro-term xdg-desktop-portal-gtk obsidian zettlr virt-manager
|
||||||
ddccontrol-db firebird-emu gitg gpick qdirstat ffmpeg_5
|
ddccontrol-db firebird-emu gitg gpick qdirstat ffmpeg_5
|
||||||
|
|
||||||
|
|
||||||
# external
|
# external
|
||||||
libnotify i3lock rofi rofimoji feh xorg.xinput arandr
|
libnotify i3lock rofi rofimoji feh xorg.xinput arandr
|
||||||
flameshot tesseract5 imagemagick xclip kitty xmacro
|
flameshot tesseract5 imagemagick xclip kitty xmacro
|
||||||
brightnessctl drawing libqalculate ddgr jq
|
brightnessctl drawing libqalculate
|
||||||
|
|
||||||
# custom scripts
|
# custom scripts
|
||||||
window-screenshot desktop-ctl em-record em-play em-play-loop
|
window-screenshot desktop-ctl
|
||||||
ocr-screenshot menu-qalc pc-get pc-set searchwolf
|
ocr-screenshot menu-qalc
|
||||||
|
|
||||||
# meow
|
# meow
|
||||||
oneko
|
oneko
|
||||||
|
@ -278,5 +134,4 @@ in with lib; {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
19
modules/desktop/dunst.nix
Normal file
19
modules/desktop/dunst.nix
Normal file
|
@ -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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -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;
|
|
||||||
};
|
|
||||||
# }}}
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -2,5 +2,6 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./spacenav.nix
|
./spacenav.nix
|
||||||
|
./wacom.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, lib, pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
spacenavd
|
spacenavd
|
||||||
|
|
|
@ -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
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
|
@ -6,5 +6,12 @@ with lib; {
|
||||||
enableContribAndExtras = true;
|
enableContribAndExtras = true;
|
||||||
config = ../../haskell/xmonad/xmonad.hs;
|
config = ../../haskell/xmonad/xmonad.hs;
|
||||||
};
|
};
|
||||||
|
home.file.wallpaper = {
|
||||||
|
target = "Pictures/wallpaper.jpg";
|
||||||
|
source = ../../other/wallpaper.jpg;
|
||||||
|
onChange = ''
|
||||||
|
feh --bg-fill ~/Pictures/wallpaper.jpg;
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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"];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -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 <silent><c-t> <Cmd>exe v:count1 . "ToggleTerm"<CR>
|
|
||||||
|
|
||||||
" By applying the mappings this way you can pass a count to your
|
|
||||||
" mapping to open a specific window.
|
|
||||||
" For example: 2<C-t> will open terminal 2
|
|
||||||
nnoremap <silent><c-t> <Cmd>exe v:count1 . "ToggleTerm direction=float"<CR>
|
|
||||||
inoremap <silent><c-t> <Esc><Cmd>exe v:count1 . "ToggleTerm direction=float"<CR>
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
{
|
|
||||||
plugin = gruvbox-nvim;
|
|
||||||
config = "colorscheme gruvbox";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
plugin = nerdtree;
|
|
||||||
config = "nmap <C-n> :NERDTreeToggle<CR>";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
plugin = nerdcommenter;
|
|
||||||
config = ''
|
|
||||||
vmap ++ <plug>NERDCommenterToggle
|
|
||||||
nmap ++ <plug>NERDCommenterToggle
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
];
|
|
||||||
# }}}
|
|
||||||
# Coc {{{
|
|
||||||
coc = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
rust-analyzer.server.path = "${pkgs.rust-analyzer}/bin/rust-analyzer";
|
|
||||||
};
|
|
||||||
pluginConfig = ''
|
|
||||||
let mapleader = "\<Space>"
|
|
||||||
|
|
||||||
nmap <silent> gd <Plug>(coc-definition)
|
|
||||||
nmap <silent> gy <Plug>(coc-type-definition)
|
|
||||||
nmap <silent> gi <Plug>(coc-implementation)
|
|
||||||
nmap <silent> gr <Plug>(coc-references)
|
|
||||||
nnoremap <silent> K :call <SID>show_documentation()<CR>
|
|
||||||
nmap gr <Plug>(coc-rename)
|
|
||||||
nmap <leader>ac <Plug>(coc-codeaction)
|
|
||||||
nmap <leader>qf <Plug>(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 <tab>' to make sure tab is not mapped by
|
|
||||||
" other plugin before putting this into your config.
|
|
||||||
inoremap <silent><expr> <TAB>
|
|
||||||
\ coc#pum#visible() ? coc#pum#next(1) :
|
|
||||||
\ CheckBackspace() ? "\<Tab>" :
|
|
||||||
\ coc#refresh()
|
|
||||||
inoremap <expr><S-TAB> coc#pum#visible() ? coc#pum#prev(1) : "\<C-h>"
|
|
||||||
|
|
||||||
if has('nvim-0.4.0') || has('patch-8.2.0750')
|
|
||||||
nnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
|
|
||||||
nnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
|
|
||||||
inoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(1)\<cr>" : "\<Right>"
|
|
||||||
inoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(0)\<cr>" : "\<Left>"
|
|
||||||
vnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
|
|
||||||
vnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
" Make <CR> to accept selected completion item or notify coc.nvim to format
|
|
||||||
" <C-g>u breaks current undo, please make your own choice.
|
|
||||||
inoremap <silent><expr> <CR> coc#pum#visible() ? coc#pum#confirm()
|
|
||||||
\: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>"
|
|
||||||
|
|
||||||
function! CheckBackspace() abort
|
|
||||||
let col = col('.') - 1
|
|
||||||
return !col || getline('.')[col - 1] =~# '\s'
|
|
||||||
endfunction
|
|
||||||
" Make <CR> to accept selected completion item or notify coc.nvim to format
|
|
||||||
" <C-g>u breaks current undo, please make your own choice.
|
|
||||||
inoremap <silent><expr> <CR> coc#pum#visible() ? coc#pum#confirm()
|
|
||||||
\: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>"
|
|
||||||
|
|
||||||
function! CheckBackspace() abort
|
|
||||||
let col = col('.') - 1
|
|
||||||
return !col || getline('.')[col - 1] =~# '\s'
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Use <c-space> to trigger completion.
|
|
||||||
if has('nvim')
|
|
||||||
inoremap <silent><expr> <c-space> coc#refresh()
|
|
||||||
else
|
|
||||||
inoremap <silent><expr> <c-@> coc#refresh()
|
|
||||||
endif
|
|
||||||
|
|
||||||
nmap <leader>rn <Plug>(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 <Esc> <C-\><C-n>
|
|
||||||
|
|
||||||
" j/k move virtual lines (wrapped)
|
|
||||||
noremap <silent> <expr> j (v:count == 0 ? 'gj' : 'j')
|
|
||||||
noremap <silent> <expr> k (v:count == 0 ? 'gk' : 'k')
|
|
||||||
|
|
||||||
set relativenumber
|
|
||||||
set number
|
|
||||||
|
|
||||||
set smarttab
|
|
||||||
set cindent
|
|
||||||
set tabstop=4
|
|
||||||
set shiftwidth=4
|
|
||||||
|
|
||||||
set foldmethod=syntax
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
7
modules/shell/carapace.nix
Normal file
7
modules/shell/carapace.nix
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{ ... }: {
|
||||||
|
home-manager.users.jade = { pkgs, ... }: {
|
||||||
|
programs.carapace = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
10
modules/shell/default.nix
Normal file
10
modules/shell/default.nix
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
{ ... }: {
|
||||||
|
imports = [
|
||||||
|
./helix.nix
|
||||||
|
./nu.nix
|
||||||
|
./starship.nix
|
||||||
|
./zellij.nix
|
||||||
|
./carapace.nix
|
||||||
|
./direnv.nix
|
||||||
|
];
|
||||||
|
}
|
8
modules/shell/direnv.nix
Normal file
8
modules/shell/direnv.nix
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{ ... }: {
|
||||||
|
home-manager.users.jade = { pkgs, ... }: {
|
||||||
|
programs.direnv = {
|
||||||
|
enable = true;
|
||||||
|
nix-direnv.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
39
modules/shell/helix.nix
Normal file
39
modules/shell/helix.nix
Normal file
|
@ -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"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
16
modules/shell/nu.nix
Normal file
16
modules/shell/nu.nix
Normal file
|
@ -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;
|
||||||
|
};
|
||||||
|
}
|
36
modules/shell/starship.nix
Normal file
36
modules/shell/starship.nix
Normal file
|
@ -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 = " ";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
35
modules/shell/zellij.nix
Normal file
35
modules/shell/zellij.nix
Normal file
|
@ -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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -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;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -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"
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -133,9 +133,9 @@ let light_theme = {
|
||||||
}
|
}
|
||||||
|
|
||||||
# External completer example
|
# External completer example
|
||||||
let carapace_completer = {|spans|
|
# let carapace_completer = {|spans|
|
||||||
carapace $spans.0 nushell $spans | from json
|
# carapace $spans.0 nushell $spans | from json
|
||||||
}
|
# }
|
||||||
|
|
||||||
# The default config record. This is where much of your global configuration is setup.
|
# The default config record. This is where much of your global configuration is setup.
|
||||||
$env.config = {
|
$env.config = {
|
||||||
|
@ -218,7 +218,7 @@ $env.config = {
|
||||||
external: {
|
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
|
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
|
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.
|
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: {
|
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
|
pre_execution: [{ null }] # run before the repl input is run
|
||||||
env_change: {
|
env_change: {
|
||||||
PWD: [{|before, after| null }] # run if the PWD environment is different since the last repl input
|
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 gnix = cd ~/nix-configs;
|
||||||
alias grepo = cd ~/Documents/repos;
|
alias grepo = cd ~/Documents/repos;
|
||||||
alias wh = wormhole-rs;
|
alias wh = wormhole-rs;
|
||||||
|
alias gst = git status;
|
||||||
|
|
|
@ -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 (<i>${content:0:50}...</i>)"
|
|
||||||
done
|
|
|
@ -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 (<i>${content:0:30}</i>)"
|
|
||||||
done
|
|
|
@ -1,2 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
pkgs.writeShellScriptBin "searchwolf" (builtins.readFile ./searchwolf.sh)
|
|
|
@ -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
|
|
Loading…
Reference in a new issue