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
|
@ -1,13 +1,10 @@
|
|||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./zellij.nix
|
||||
./shell
|
||||
./desktop
|
||||
./terminal.nix
|
||||
./neovim.nix
|
||||
./zsh.nix
|
||||
./flatpak.nix
|
||||
./firewall.nix
|
||||
./helix.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";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
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 = [
|
||||
./spacenav.nix
|
||||
./wacom.nix
|
||||
];
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
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;
|
||||
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"
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue