`date`
This commit is contained in:
parent
4c8460ce84
commit
c643f70f98
|
@ -5,74 +5,74 @@
|
||||||
{ config, inputs, lib, pkgs, ... }:
|
{ config, inputs, lib, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
# Use the systemd-boot EFI boot loader.
|
||||||
|
boot.loader.systemd-boot.enable = true;
|
||||||
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
time.timeZone = "Europe/Brussels";
|
||||||
|
networking.hostName = "nixos"; # 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.
|
||||||
|
|
||||||
|
# System Packages
|
||||||
|
programs.zsh.enable = true;
|
||||||
|
programs.hyprland.enable = true;
|
||||||
|
|
||||||
|
# Pipewire
|
||||||
|
security.rtkit.enable = true;
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
alsa.enable = true;
|
||||||
|
alsa.support32Bit = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
jack.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
users.users.user = {
|
||||||
|
isNormalUser = true;
|
||||||
|
extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
|
||||||
|
openssh.authorizedKeys.keys = [
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKAa3tMzSCRuprEACrBsKI0F/o73o6J9L1qR3TaZn/N8 user@Kell"
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBxMq4kubz4wWr4S8xU3GRkPcn6XRS3y7IP+qylN5QAp user@Aloria"
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHtzTFdvLEvXpv69qAWLTipl4hgsKgRrRrWJRecsFthG user@Riva"
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOxtJRtlAphl8euicVUR/6C7o+tyhpYmcbMBLHnldEIX server@mallorea"
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILazQU/Y9I5PkMZoG/Lzc6mDR7s+aRHzqJoFUhYSse4P PocoF1"
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFoUYcVMsDw6tmjfdOuQkwaXx8fohKJs/6/5HoLzTP6x Tablet"
|
||||||
];
|
];
|
||||||
|
shell = pkgs.zsh;
|
||||||
|
};
|
||||||
|
|
||||||
# Use the systemd-boot EFI boot loader.
|
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||||
boot.loader.systemd-boot.enable = true;
|
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
|
||||||
time.timeZone = "Europe/Brussels";
|
|
||||||
networking.hostName = "nixos"; # 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.
|
|
||||||
|
|
||||||
# System Packages
|
environment.systemPackages = with pkgs; [
|
||||||
programs.zsh.enable = true;
|
wget
|
||||||
programs.hyprland.enable = true;
|
git
|
||||||
|
curl
|
||||||
|
];
|
||||||
|
|
||||||
# Pipewire
|
services.openssh = {
|
||||||
security.rtkit.enable = true;
|
enable = true;
|
||||||
services.pipewire = {
|
settings = {
|
||||||
enable = true;
|
PermitRootLogin = "no";
|
||||||
alsa.enable = true;
|
PasswordAuthentication = false;
|
||||||
alsa.support32Bit = true;
|
|
||||||
pulse.enable = true;
|
|
||||||
jack.enable = true;
|
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
users.users.user = {
|
networking.firewall.enable = false;
|
||||||
isNormalUser = true;
|
system.stateVersion = "23.11";
|
||||||
extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
|
environment.sessionVariables.NIXOS_OZONE_WL = "1"; #hint electron apps to use wayland:
|
||||||
openssh.authorizedKeys.keys = [
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKAa3tMzSCRuprEACrBsKI0F/o73o6J9L1qR3TaZn/N8 user@Kell"
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBxMq4kubz4wWr4S8xU3GRkPcn6XRS3y7IP+qylN5QAp user@Aloria"
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHtzTFdvLEvXpv69qAWLTipl4hgsKgRrRrWJRecsFthG user@Riva"
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOxtJRtlAphl8euicVUR/6C7o+tyhpYmcbMBLHnldEIX server@mallorea"
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILazQU/Y9I5PkMZoG/Lzc6mDR7s+aRHzqJoFUhYSse4P PocoF1"
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFoUYcVMsDw6tmjfdOuQkwaXx8fohKJs/6/5HoLzTP6x Tablet"
|
|
||||||
];
|
|
||||||
shell = pkgs.zsh;
|
|
||||||
};
|
|
||||||
|
|
||||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
# Fonts
|
||||||
|
fonts.packages = with pkgs; [
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
wget
|
|
||||||
git
|
|
||||||
curl
|
|
||||||
];
|
|
||||||
|
|
||||||
services.openssh = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
PermitRootLogin = "no";
|
|
||||||
PasswordAuthentication = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.firewall.enable = false;
|
|
||||||
system.stateVersion = "23.11";
|
|
||||||
environment.sessionVariables.NIXOS_OZONE_WL = "1"; #hint electron apps to use wayland:
|
|
||||||
|
|
||||||
# Fonts
|
|
||||||
fonts.packages = with pkgs; [
|
|
||||||
noto-fonts
|
noto-fonts
|
||||||
noto-fonts-cjk
|
noto-fonts-cjk
|
||||||
noto-fonts-emoji
|
noto-fonts-emoji
|
||||||
iosevka
|
iosevka
|
||||||
nerdfonts
|
nerdfonts
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,49 +1,51 @@
|
||||||
{
|
{
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager";
|
url = "github:nix-community/home-manager";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
|
||||||
hyprland = {
|
|
||||||
type = "git";
|
|
||||||
url = "https://github.com/hyprwm/Hyprland";
|
|
||||||
submodules = true;
|
|
||||||
};
|
|
||||||
split-monitor-workspaces = {
|
|
||||||
url = "github:Duckonaut/split-monitor-workspaces";
|
|
||||||
inputs.hyprland.follows = "hyprland";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
hyprland = {
|
||||||
|
type = "git";
|
||||||
|
url = "https://github.com/hyprwm/Hyprland";
|
||||||
|
submodules = true;
|
||||||
|
};
|
||||||
|
split-monitor-workspaces = {
|
||||||
|
url = "github:Duckonaut/split-monitor-workspaces";
|
||||||
|
inputs.hyprland.follows = "hyprland";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
outputs = {
|
outputs =
|
||||||
self,
|
{ self
|
||||||
nixpkgs,
|
, nixpkgs
|
||||||
home-manager,
|
, home-manager
|
||||||
split-monitor-workspaces,
|
, split-monitor-workspaces
|
||||||
...
|
, ...
|
||||||
}@inputs: let
|
}@inputs:
|
||||||
system = "x86_64-linux";
|
let
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
system = "x86_64-linux";
|
||||||
in {
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
nixosConfigurations = {
|
in
|
||||||
nixos = nixpkgs.lib.nixosSystem {
|
{
|
||||||
specialArgs = { inherit inputs; }; # allows access to flake inputs in nixos modules
|
nixosConfigurations = {
|
||||||
modules = [
|
nixos = nixpkgs.lib.nixosSystem {
|
||||||
./configuration.nix
|
specialArgs = { inherit inputs; }; # allows access to flake inputs in nixos modules
|
||||||
home-manager.nixosModules.home-manager
|
modules = [
|
||||||
{
|
./configuration.nix
|
||||||
home-manager = {
|
home-manager.nixosModules.home-manager
|
||||||
extraSpecialArgs = { inherit inputs; }; # allows access to flake inputs in hm modules
|
{
|
||||||
useGlobalPkgs = true;
|
home-manager = {
|
||||||
useUserPackages = true;
|
extraSpecialArgs = { inherit inputs; }; # allows access to flake inputs in hm modules
|
||||||
users.user = {
|
useGlobalPkgs = true;
|
||||||
imports = [ ./home.nix ];
|
useUserPackages = true;
|
||||||
};
|
users.user = {
|
||||||
};
|
imports = [ ./home.nix ];
|
||||||
}
|
};
|
||||||
];
|
};
|
||||||
};
|
}
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,8 @@
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
[ (modulesPath + "/profiles/qemu-guest.nix")
|
[
|
||||||
|
(modulesPath + "/profiles/qemu-guest.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "sr_mod" "virtio_blk" ];
|
boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "sr_mod" "virtio_blk" ];
|
||||||
|
@ -14,12 +15,14 @@
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
fileSystems."/" =
|
fileSystems."/" =
|
||||||
{ device = "/dev/disk/by-uuid/563963bd-8e27-4c9c-a1d6-d204ea7c43ff";
|
{
|
||||||
|
device = "/dev/disk/by-uuid/563963bd-8e27-4c9c-a1d6-d204ea7c43ff";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/boot" =
|
fileSystems."/boot" =
|
||||||
{ device = "/dev/disk/by-uuid/9F3C-9F3B";
|
{
|
||||||
|
device = "/dev/disk/by-uuid/9F3C-9F3B";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
options = [ "fmask=0077" "dmask=0077" ];
|
options = [ "fmask=0077" "dmask=0077" ];
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,53 +1,53 @@
|
||||||
{ inputs, config, pkgs, ... }:
|
{ inputs, config, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
(import ./modules/zsh/config.nix {inherit config pkgs;})
|
(import ./modules/zsh/config.nix { inherit config pkgs; })
|
||||||
(import ./modules/nvim/config.nix {inherit config pkgs;})
|
(import ./modules/nvim/config.nix { inherit config pkgs; })
|
||||||
(import ./modules/email/config.nix {inherit config pkgs;})
|
(import ./modules/email/config.nix { inherit config pkgs; })
|
||||||
(import ./modules/hyprland/config.nix {inherit inputs config pkgs;})
|
(import ./modules/hyprland/config.nix { inherit inputs config pkgs; })
|
||||||
];
|
];
|
||||||
|
|
||||||
home.stateVersion = "24.11";
|
home.stateVersion = "24.11";
|
||||||
targets.genericLinux.enable = true;
|
targets.genericLinux.enable = true;
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
htop
|
htop
|
||||||
mailcap
|
mailcap
|
||||||
];
|
];
|
||||||
|
|
||||||
home.file = {
|
home.file = {
|
||||||
".mailcap".text = "text/html; w3m -dump -o -document_charset=%{charset} %s; nametemplate=%s.html; copiousoutput";
|
".mailcap".text = "text/html; w3m -dump -o -document_charset=%{charset} %s; nametemplate=%s.html; copiousoutput";
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.bash.enable = true;
|
||||||
|
programs.home-manager.enable = true;
|
||||||
|
programs.git = {
|
||||||
|
enable = true;
|
||||||
|
userName = "Thomas Avé";
|
||||||
|
userEmail = "email@thomasave.be";
|
||||||
|
aliases = {
|
||||||
|
s = "status";
|
||||||
|
a = "add";
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
programs.bash.enable = true;
|
home.sessionVariables = {
|
||||||
programs.home-manager.enable = true;
|
XDG_CONFIG_HOME = "${config.xdg.configHome}";
|
||||||
programs.git = {
|
XDG_CACHE_HOME = "${config.xdg.cacheHome}";
|
||||||
enable = true;
|
XDG_DATA_HOME = "${config.xdg.dataHome}";
|
||||||
userName = "Thomas Avé";
|
XDG_STATE_HOME = "${config.xdg.stateHome}";
|
||||||
userEmail = "email@thomasave.be";
|
|
||||||
aliases = {
|
|
||||||
s = "status";
|
|
||||||
a = "add";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
home.sessionVariables = {
|
CUDA_CACHE_PATH = "${config.xdg.cacheHome}/nv";
|
||||||
XDG_CONFIG_HOME = "${config.xdg.configHome}";
|
DOCKER_CONFIG = "${config.xdg.configHome}/docker";
|
||||||
XDG_CACHE_HOME = "${config.xdg.cacheHome}";
|
LESSHISTFILE = "${config.xdg.cacheHome}/less/history";
|
||||||
XDG_DATA_HOME = "${config.xdg.dataHome}";
|
PARALLEL_HOME = "${config.xdg.configHome}/parallel";
|
||||||
XDG_STATE_HOME = "${config.xdg.stateHome}";
|
PYTHONSTARTUP = "${config.xdg.configHome}/python/pythonrc";
|
||||||
|
SQLITE_HISTORY = "${config.xdg.cacheHome}/sqlite_history";
|
||||||
CUDA_CACHE_PATH = "${config.xdg.cacheHome}/nv";
|
WINEPREFIX = "${config.xdg.dataHome}/wine";
|
||||||
DOCKER_CONFIG = "${config.xdg.configHome}/docker";
|
XDG_CURRENT_DESKTOP = "GNOME";
|
||||||
LESSHISTFILE = "${config.xdg.cacheHome}/less/history";
|
OPENCV_LOG_LEVEL = "ERROR";
|
||||||
PARALLEL_HOME = "${config.xdg.configHome}/parallel";
|
COLORTERM = "truecolor";
|
||||||
PYTHONSTARTUP = "${config.xdg.configHome}/python/pythonrc";
|
};
|
||||||
SQLITE_HISTORY = "${config.xdg.cacheHome}/sqlite_history";
|
|
||||||
WINEPREFIX = "${config.xdg.dataHome}/wine";
|
|
||||||
XDG_CURRENT_DESKTOP = "GNOME";
|
|
||||||
OPENCV_LOG_LEVEL = "ERROR";
|
|
||||||
COLORTERM = "truecolor";
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,127 +1,127 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
programs.alacritty = {
|
programs.alacritty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
scrolling.history = 10000;
|
scrolling.history = 10000;
|
||||||
window = {
|
window = {
|
||||||
dynamic_padding = true;
|
dynamic_padding = true;
|
||||||
dynamic_title = true;
|
dynamic_title = true;
|
||||||
opacity = 0.3;
|
opacity = 0.3;
|
||||||
};
|
};
|
||||||
colors = {
|
colors = {
|
||||||
bright = {
|
bright = {
|
||||||
black = "#555556";
|
black = "#555556";
|
||||||
blue = "#00afff";
|
blue = "#00afff";
|
||||||
cyan = "#50cdfe";
|
cyan = "#50cdfe";
|
||||||
green = "#b0e05e";
|
green = "#b0e05e";
|
||||||
magenta = "#af87ff";
|
magenta = "#af87ff";
|
||||||
red = "#f5669c";
|
red = "#f5669c";
|
||||||
white = "#ffffff";
|
white = "#ffffff";
|
||||||
yellow = "#fef26c";
|
yellow = "#fef26c";
|
||||||
};
|
};
|
||||||
normal = {
|
normal = {
|
||||||
black = "#121213";
|
black = "#121213";
|
||||||
blue = "#0f7fcf";
|
blue = "#0f7fcf";
|
||||||
cyan = "#42a7cf";
|
cyan = "#42a7cf";
|
||||||
green = "#97e123";
|
green = "#97e123";
|
||||||
magenta = "#8700ff";
|
magenta = "#8700ff";
|
||||||
red = "#fa2573";
|
red = "#fa2573";
|
||||||
white = "#bbbbbb";
|
white = "#bbbbbb";
|
||||||
yellow = "#dfd460";
|
yellow = "#dfd460";
|
||||||
};
|
};
|
||||||
primary = {
|
primary = {
|
||||||
background = "#000011";
|
background = "#000011";
|
||||||
foreground = "#F8F8F2";
|
foreground = "#F8F8F2";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
font = {
|
font = {
|
||||||
size = 15;
|
size = 15;
|
||||||
bold = {
|
bold = {
|
||||||
family = "Iosevka Term Extended";
|
family = "Iosevka Term Extended";
|
||||||
style = "Bold";
|
style = "Bold";
|
||||||
};
|
};
|
||||||
bold_italic = {
|
bold_italic = {
|
||||||
family = "Iosevka Term Extended";
|
family = "Iosevka Term Extended";
|
||||||
style = "Bold Italic";
|
style = "Bold Italic";
|
||||||
};
|
};
|
||||||
italic = {
|
italic = {
|
||||||
family = "Iosevka Term Extended";
|
family = "Iosevka Term Extended";
|
||||||
style = "Italic";
|
style = "Italic";
|
||||||
};
|
};
|
||||||
normal = {
|
normal = {
|
||||||
family = "Iosevka Term Extended";
|
family = "Iosevka Term Extended";
|
||||||
style = "Regular";
|
style = "Regular";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
keyboard.bindings = [
|
keyboard.bindings = [
|
||||||
{
|
{
|
||||||
action = "ToggleFullscreen";
|
action = "ToggleFullscreen";
|
||||||
key = "F11";
|
key = "F11";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
action = "ToggleViMode";
|
action = "ToggleViMode";
|
||||||
key = "Escape";
|
key = "Escape";
|
||||||
mode = "Vi";
|
mode = "Vi";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
action = "ScrollHalfPageUp";
|
action = "ScrollHalfPageUp";
|
||||||
key = "E";
|
key = "E";
|
||||||
mode = "Vi";
|
mode = "Vi";
|
||||||
mods = "Control";
|
mods = "Control";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
key = "F";
|
key = "F";
|
||||||
mods = "Control|Shift";
|
mods = "Control|Shift";
|
||||||
action = "ReceiveChar";
|
action = "ReceiveChar";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
chars = "\u001B[72;6u";
|
chars = "\u001B[72;6u";
|
||||||
key = "H";
|
key = "H";
|
||||||
mods = "Control|Shift";
|
mods = "Control|Shift";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
chars = "\u001B[74;6u";
|
chars = "\u001B[74;6u";
|
||||||
key = "J";
|
key = "J";
|
||||||
mods = "Control|Shift";
|
mods = "Control|Shift";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
chars = "\u001B[75;6u";
|
chars = "\u001B[75;6u";
|
||||||
key = "K";
|
key = "K";
|
||||||
mods = "Control|Shift";
|
mods = "Control|Shift";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
chars = "\u001B[76;6u";
|
chars = "\u001B[76;6u";
|
||||||
key = "L";
|
key = "L";
|
||||||
mods = "Control|Shift";
|
mods = "Control|Shift";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
chars = "\u001B[105;5u";
|
chars = "\u001B[105;5u";
|
||||||
key = "I";
|
key = "I";
|
||||||
mods = "Control";
|
mods = "Control";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
chars = "\u001B[46;5u";
|
chars = "\u001B[46;5u";
|
||||||
key = "Period";
|
key = "Period";
|
||||||
mods = "Control";
|
mods = "Control";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
chars = "\u001B[44;5u";
|
chars = "\u001B[44;5u";
|
||||||
key = "Comma";
|
key = "Comma";
|
||||||
mods = "Control";
|
mods = "Control";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
chars = "\u001B[59;5u";
|
chars = "\u001B[59;5u";
|
||||||
key = "Semicolon";
|
key = "Semicolon";
|
||||||
mods = "Control";
|
mods = "Control";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
chars = "\u001B[13;2u";
|
chars = "\u001B[13;2u";
|
||||||
key = "Return";
|
key = "Return";
|
||||||
mods = "Shift";
|
mods = "Shift";
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,248 +1,248 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
programs.notmuch = {
|
programs.notmuch = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraConfig = {
|
extraConfig = {
|
||||||
database = {
|
database = {
|
||||||
path = "/home/user/.config/aerc/mail";
|
path = "/home/user/.config/aerc/mail";
|
||||||
};
|
};
|
||||||
user = {
|
user = {
|
||||||
name = "Thomas Avé";
|
name = "Thomas Avé";
|
||||||
primary_email = "email@thomasave.be";
|
primary_email = "email@thomasave.be";
|
||||||
other_email = "Thomas.Ave@uantwerpen.be;Thomas.Ave@imec.be;";
|
other_email = "Thomas.Ave@uantwerpen.be;Thomas.Ave@imec.be;";
|
||||||
};
|
};
|
||||||
maildir = {
|
maildir = {
|
||||||
synchronize_flags = "true";
|
synchronize_flags = "true";
|
||||||
};
|
};
|
||||||
};
|
|
||||||
};
|
};
|
||||||
programs.aerc = {
|
};
|
||||||
enable = true;
|
programs.aerc = {
|
||||||
extraBinds = {
|
enable = true;
|
||||||
global = {
|
extraBinds = {
|
||||||
"<C-p>" = ":menu -adc 'fzy -l 30' :cf -a<Enter>";
|
global = {
|
||||||
"<tab>" = ":next-tab<Enter>";
|
"<C-p>" = ":menu -adc 'fzy -l 30' :cf -a<Enter>";
|
||||||
"?" = ":help keys<Enter>";
|
"<tab>" = ":next-tab<Enter>";
|
||||||
"<F5>" = ":check-mail<Enter>";
|
"?" = ":help keys<Enter>";
|
||||||
};
|
"<F5>" = ":check-mail<Enter>";
|
||||||
messages = {
|
};
|
||||||
"q" = ":q<Enter>";
|
messages = {
|
||||||
"<Backspace>" = ":q<Enter>";
|
"q" = ":q<Enter>";
|
||||||
"j" = ":next<Enter>";
|
"<Backspace>" = ":q<Enter>";
|
||||||
"k" = ":prev<Enter>";
|
"j" = ":next<Enter>";
|
||||||
"<Up>" = ":prev<Enter>";
|
"k" = ":prev<Enter>";
|
||||||
"g" = ":select 0<Enter>";
|
"<Up>" = ":prev<Enter>";
|
||||||
"G" = ":select -1<Enter>";
|
"g" = ":select 0<Enter>";
|
||||||
"J" = ":next-folder<Enter>";
|
"G" = ":select -1<Enter>";
|
||||||
"K" = ":prev-folder<Enter>";
|
"J" = ":next-folder<Enter>";
|
||||||
"v" = ":mark -t<Enter>";
|
"K" = ":prev-folder<Enter>";
|
||||||
"V" = ":mark -v<Enter>";
|
"v" = ":mark -t<Enter>";
|
||||||
"<Space>" = ":read -t<Enter>";
|
"V" = ":mark -v<Enter>";
|
||||||
"T" = ":toggle-threads<Enter>";
|
"<Space>" = ":read -t<Enter>";
|
||||||
"<Enter>" = ":view<Enter>";
|
"T" = ":toggle-threads<Enter>";
|
||||||
"d" = ":prompt 'Really delete this message?' 'delete-message'<Enter>";
|
"<Enter>" = ":view<Enter>";
|
||||||
"D" = ":delete<Enter>";
|
"d" = ":prompt 'Really delete this message?' 'delete-message'<Enter>";
|
||||||
"a" = ":archive flat<Enter>";
|
"D" = ":delete<Enter>";
|
||||||
"A" = ":unmark -a<Enter>:mark -T<Enter>:archive flat<Enter>";
|
"a" = ":archive flat<Enter>";
|
||||||
"f" = ":flag -t<Enter>";
|
"A" = ":unmark -a<Enter>:mark -T<Enter>:archive flat<Enter>";
|
||||||
"m" = ":compose<Enter>";
|
"f" = ":flag -t<Enter>";
|
||||||
"rr" = ":reply -a<Enter>";
|
"m" = ":compose<Enter>";
|
||||||
"rq" = ":reply -aq<Enter>";
|
"rr" = ":reply -a<Enter>";
|
||||||
"Rr" = ":reply<Enter>";
|
"rq" = ":reply -aq<Enter>";
|
||||||
"Rq" = ":reply -q<Enter>";
|
"Rr" = ":reply<Enter>";
|
||||||
"c" = ":cf<space>";
|
"Rq" = ":reply -q<Enter>";
|
||||||
"$" = ":term<space>";
|
"c" = ":cf<space>";
|
||||||
"!" = ":term<space>";
|
"$" = ":term<space>";
|
||||||
"|" = ":pipe<space>";
|
"!" = ":term<space>";
|
||||||
"/" = ":search -a<space>";
|
"|" = ":pipe<space>";
|
||||||
"\\" = ":filter -a <space>";
|
"/" = ":search -a<space>";
|
||||||
"n" = ":next-result<Enter>";
|
"\\" = ":filter -a <space>";
|
||||||
"N" = ":prev-result<Enter>";
|
"n" = ":next-result<Enter>";
|
||||||
"<Esc>" = ":clear<Enter>";
|
"N" = ":prev-result<Enter>";
|
||||||
"s" = ":split<Enter>";
|
"<Esc>" = ":clear<Enter>";
|
||||||
"S" = ":vsplit<Enter>";
|
"s" = ":split<Enter>";
|
||||||
"pl" = ":patch list<Enter>";
|
"S" = ":vsplit<Enter>";
|
||||||
"pa" = ":patch apply <Tab>";
|
"pl" = ":patch list<Enter>";
|
||||||
"pd" = ":patch drop <Tab>";
|
"pa" = ":patch apply <Tab>";
|
||||||
"pb" = ":patch rebase<Enter>";
|
"pd" = ":patch drop <Tab>";
|
||||||
"pt" = ":patch term<Enter>";
|
"pb" = ":patch rebase<Enter>";
|
||||||
"ps" = ":patch switch <Tab>";
|
"pt" = ":patch term<Enter>";
|
||||||
};
|
"ps" = ":patch switch <Tab>";
|
||||||
view = {
|
};
|
||||||
"/" = ":toggle-key-passthrough<Enter>/";
|
view = {
|
||||||
"q" = ":close<Enter>";
|
"/" = ":toggle-key-passthrough<Enter>/";
|
||||||
"O" = ":open<Enter>";
|
"q" = ":close<Enter>";
|
||||||
"o" = ":open<Enter>";
|
"O" = ":open<Enter>";
|
||||||
"S" = ":save<space>";
|
"o" = ":open<Enter>";
|
||||||
"|" = ":pipe<space>";
|
"S" = ":save<space>";
|
||||||
"D" = ":delete<Enter>";
|
"|" = ":pipe<space>";
|
||||||
"A" = ":archive flat<Enter>";
|
"D" = ":delete<Enter>";
|
||||||
"<C-l>" = ":open-link <space>";
|
"A" = ":archive flat<Enter>";
|
||||||
"f" = ":flag -t<Enter>";
|
"<C-l>" = ":open-link <space>";
|
||||||
"rr" = ":reply -a<Enter>";
|
"f" = ":flag -t<Enter>";
|
||||||
"rq" = ":reply -aq<Enter>";
|
"rr" = ":reply -a<Enter>";
|
||||||
"Rr" = ":reply<Enter>";
|
"rq" = ":reply -aq<Enter>";
|
||||||
"Rq" = ":reply -q<Enter>";
|
"Rr" = ":reply<Enter>";
|
||||||
"H" = ":toggle-headers<Enter>";
|
"Rq" = ":reply -q<Enter>";
|
||||||
"<C-k>" = ":prev-part<Enter>";
|
"H" = ":toggle-headers<Enter>";
|
||||||
"<C-Up>" = ":prev-part<Enter>";
|
"<C-k>" = ":prev-part<Enter>";
|
||||||
"<C-j>" = ":next-part<Enter>";
|
"<C-Up>" = ":prev-part<Enter>";
|
||||||
"<C-Down>" = ":next-part<Enter>";
|
"<C-j>" = ":next-part<Enter>";
|
||||||
"J" = ":next<Enter>";
|
"<C-Down>" = ":next-part<Enter>";
|
||||||
"<C-Right>" = ":next<Enter>";
|
"J" = ":next<Enter>";
|
||||||
"K" = ":prev<Enter>";
|
"<C-Right>" = ":next<Enter>";
|
||||||
"<C-Left>" = ":prev<Enter>";
|
"K" = ":prev<Enter>";
|
||||||
};
|
"<C-Left>" = ":prev<Enter>";
|
||||||
"view::passthrough" = {
|
};
|
||||||
"$noinherit" = "true";
|
"view::passthrough" = {
|
||||||
"$ex" = "<C-x>";
|
"$noinherit" = "true";
|
||||||
"<Esc>" = ":toggle-key-passthrough<Enter>";
|
"$ex" = "<C-x>";
|
||||||
};
|
"<Esc>" = ":toggle-key-passthrough<Enter>";
|
||||||
compose = {
|
};
|
||||||
"$noinherit" = "true";
|
compose = {
|
||||||
"$ex" = "<C-x>";
|
"$noinherit" = "true";
|
||||||
"$complete" = "<C-o>";
|
"$ex" = "<C-x>";
|
||||||
"<C-k>" = ":prev-field<Enter>";
|
"$complete" = "<C-o>";
|
||||||
"<C-Up>" = ":prev-field<Enter>";
|
"<C-k>" = ":prev-field<Enter>";
|
||||||
"<C-j>" = ":next-field<Enter>";
|
"<C-Up>" = ":prev-field<Enter>";
|
||||||
"<C-Down>" = ":next-field<Enter>";
|
"<C-j>" = ":next-field<Enter>";
|
||||||
"<A-p>" = ":switch-account -p<Enter>";
|
"<C-Down>" = ":next-field<Enter>";
|
||||||
"<C-Left>" = ":switch-account -p<Enter>";
|
"<A-p>" = ":switch-account -p<Enter>";
|
||||||
"<A-n>" = ":switch-account -n<Enter>";
|
"<C-Left>" = ":switch-account -p<Enter>";
|
||||||
"<C-Right>" = ":switch-account -n<Enter>";
|
"<A-n>" = ":switch-account -n<Enter>";
|
||||||
"<tab>" = ":next-field<Enter>";
|
"<C-Right>" = ":switch-account -n<Enter>";
|
||||||
"<backtab>" = ":prev-field<Enter>";
|
"<tab>" = ":next-field<Enter>";
|
||||||
"<C-p>" = ":prev-tab<Enter>";
|
"<backtab>" = ":prev-field<Enter>";
|
||||||
"<C-PgUp>" = ":prev-tab<Enter>";
|
"<C-p>" = ":prev-tab<Enter>";
|
||||||
"<C-n>" = ":next-tab<Enter>";
|
"<C-PgUp>" = ":prev-tab<Enter>";
|
||||||
"<C-PgDn>" = ":next-tab<Enter>";
|
"<C-n>" = ":next-tab<Enter>";
|
||||||
};
|
"<C-PgDn>" = ":next-tab<Enter>";
|
||||||
"compose::editor" = {
|
};
|
||||||
"$noinherit" = "true";
|
"compose::editor" = {
|
||||||
"$ex" = "<C-x>";
|
"$noinherit" = "true";
|
||||||
"<C-k>" = ":prev-field<Enter>";
|
"$ex" = "<C-x>";
|
||||||
"<C-Up>" = ":prev-field<Enter>";
|
"<C-k>" = ":prev-field<Enter>";
|
||||||
"<C-j>" = ":next-field<Enter>";
|
"<C-Up>" = ":prev-field<Enter>";
|
||||||
"<C-Down>" = ":next-field<Enter>";
|
"<C-j>" = ":next-field<Enter>";
|
||||||
"<C-p>" = ":prev-tab<Enter>";
|
"<C-Down>" = ":next-field<Enter>";
|
||||||
"<C-PgUp>" = ":prev-tab<Enter>";
|
"<C-p>" = ":prev-tab<Enter>";
|
||||||
"<C-n>" = ":next-tab<Enter>";
|
"<C-PgUp>" = ":prev-tab<Enter>";
|
||||||
"<C-PgDn>" = ":next-tab<Enter>";
|
"<C-n>" = ":next-tab<Enter>";
|
||||||
};
|
"<C-PgDn>" = ":next-tab<Enter>";
|
||||||
"compose::review" = {
|
};
|
||||||
"y" = ":send<Enter>";
|
"compose::review" = {
|
||||||
"n" = ":abort<Enter>";
|
"y" = ":send<Enter>";
|
||||||
"v" = ":preview<Enter>";
|
"n" = ":abort<Enter>";
|
||||||
"p" = ":postpone<Enter>";
|
"v" = ":preview<Enter>";
|
||||||
"q" = ":choose -o d discard abort -o p postpone postpone<Enter>";
|
"p" = ":postpone<Enter>";
|
||||||
"e" = ":edit<Enter>";
|
"q" = ":choose -o d discard abort -o p postpone postpone<Enter>";
|
||||||
"a" = ":attach<space>";
|
"e" = ":edit<Enter>";
|
||||||
"d" = ":detach<space>";
|
"a" = ":attach<space>";
|
||||||
};
|
"d" = ":detach<space>";
|
||||||
terminal = {
|
};
|
||||||
"$noinherit" = "true";
|
terminal = {
|
||||||
"$ex" = "<C-x>";
|
"$noinherit" = "true";
|
||||||
"<C-p>" = ":prev-tab<Enter>";
|
"$ex" = "<C-x>";
|
||||||
"<C-n>" = ":next-tab<Enter>";
|
"<C-p>" = ":prev-tab<Enter>";
|
||||||
"<C-PgUp>" = ":prev-tab<Enter>";
|
"<C-n>" = ":next-tab<Enter>";
|
||||||
"<C-PgDn>" = ":next-tab<Enter>";
|
"<C-PgUp>" = ":prev-tab<Enter>";
|
||||||
};
|
"<C-PgDn>" = ":next-tab<Enter>";
|
||||||
};
|
};
|
||||||
extraConfig = {
|
|
||||||
general = {
|
|
||||||
term = "xterm-256color";
|
|
||||||
};
|
|
||||||
ui = {
|
|
||||||
border-char-vertical = "│";
|
|
||||||
border-char-horizontal = "─";
|
|
||||||
styleset-name = "catppuccin-mocha";
|
|
||||||
timestamp-format = "2006-01-02 15:04";
|
|
||||||
sidebar-width = 30;
|
|
||||||
mouse-enabled = true;
|
|
||||||
dirlist-right = "{{if .Unread}}{{humanReadable .Unread}}{{end}}";
|
|
||||||
dirlist-tree = true;
|
|
||||||
};
|
|
||||||
viewer = {
|
|
||||||
pager = "nvim -u $XDG_CONFIG_HOME/nvim/aerc.lua";
|
|
||||||
};
|
|
||||||
compose = {
|
|
||||||
address-book-cmd = "notmuch address \"\%s\"";
|
|
||||||
};
|
|
||||||
multipart-converters = {
|
|
||||||
"text/html" = "w3m -dump -o display_link_number=1 -T text/html";
|
|
||||||
};
|
|
||||||
filters = {
|
|
||||||
"text/plain" = "cat";
|
|
||||||
"text/calendar" = "gnome-calendar";
|
|
||||||
"message/delivery-status" = "cat";
|
|
||||||
"message/rfc822" = "cat";
|
|
||||||
"text/html" = "w3m -dump -o display_link_number=1 -T text/html";
|
|
||||||
"text/*" = "bat -fP --file-name=\"$AERC_FILENAME\"";
|
|
||||||
"application/x-sh" = "bat -fP -l sh";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
extraConfig = {
|
||||||
|
general = {
|
||||||
|
term = "xterm-256color";
|
||||||
|
};
|
||||||
|
ui = {
|
||||||
|
border-char-vertical = "│";
|
||||||
|
border-char-horizontal = "─";
|
||||||
|
styleset-name = "catppuccin-mocha";
|
||||||
|
timestamp-format = "2006-01-02 15:04";
|
||||||
|
sidebar-width = 30;
|
||||||
|
mouse-enabled = true;
|
||||||
|
dirlist-right = "{{if .Unread}}{{humanReadable .Unread}}{{end}}";
|
||||||
|
dirlist-tree = true;
|
||||||
|
};
|
||||||
|
viewer = {
|
||||||
|
pager = "nvim -u $XDG_CONFIG_HOME/nvim/aerc.lua";
|
||||||
|
};
|
||||||
|
compose = {
|
||||||
|
address-book-cmd = "notmuch address \"\%s\"";
|
||||||
|
};
|
||||||
|
multipart-converters = {
|
||||||
|
"text/html" = "w3m -dump -o display_link_number=1 -T text/html";
|
||||||
|
};
|
||||||
|
filters = {
|
||||||
|
"text/plain" = "cat";
|
||||||
|
"text/calendar" = "gnome-calendar";
|
||||||
|
"message/delivery-status" = "cat";
|
||||||
|
"message/rfc822" = "cat";
|
||||||
|
"text/html" = "w3m -dump -o display_link_number=1 -T text/html";
|
||||||
|
"text/*" = "bat -fP --file-name=\"$AERC_FILENAME\"";
|
||||||
|
"application/x-sh" = "bat -fP -l sh";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
home.file."${config.xdg.configHome}/aerc/map.conf".text = "Inbox=tag:inbox and not tag:archived and not tag:deleted";
|
home.file."${config.xdg.configHome}/aerc/map.conf".text = "Inbox=tag:inbox and not tag:archived and not tag:deleted";
|
||||||
home.file."${config.xdg.configHome}/aerc/stylesets/catppuccin-mocha".text = ''
|
home.file."${config.xdg.configHome}/aerc/stylesets/catppuccin-mocha".text = ''
|
||||||
*.default=true
|
*.default=true
|
||||||
*.normal=true
|
*.normal=true
|
||||||
|
|
||||||
default.fg=#abb2bf
|
default.fg=#abb2bf
|
||||||
default.bg=#11121D
|
default.bg=#11121D
|
||||||
*.bg=#11121D
|
*.bg=#11121D
|
||||||
|
|
||||||
error.fg=#f38ba8
|
error.fg=#f38ba8
|
||||||
warning.fg=#fab387
|
warning.fg=#fab387
|
||||||
success.fg=#a6e3a1
|
success.fg=#a6e3a1
|
||||||
|
|
||||||
tab.fg=#6c7086
|
tab.fg=#6c7086
|
||||||
tab.bg=#181825
|
tab.bg=#181825
|
||||||
tab.selected.fg=#cdd6f4
|
tab.selected.fg=#cdd6f4
|
||||||
tab.selected.bg=#023269
|
tab.selected.bg=#023269
|
||||||
tab.selected.bold=true
|
tab.selected.bold=true
|
||||||
|
|
||||||
part*.selected.bg=#023269
|
part*.selected.bg=#023269
|
||||||
|
|
||||||
border.fg=#023269
|
border.fg=#023269
|
||||||
border.bold=true
|
border.bold=true
|
||||||
|
|
||||||
msglist_unread.bold=true
|
msglist_unread.bold=true
|
||||||
msglist_unread.fg=#f9e2af
|
msglist_unread.fg=#f9e2af
|
||||||
msglist_flagged.fg=#e06c75
|
msglist_flagged.fg=#e06c75
|
||||||
|
|
||||||
msglist_flagged.bold=true
|
msglist_flagged.bold=true
|
||||||
msglist_result.fg=#89b4fa
|
msglist_result.fg=#89b4fa
|
||||||
msglist_result.bold=true
|
msglist_result.bold=true
|
||||||
msglist_*.selected.bold=true
|
msglist_*.selected.bold=true
|
||||||
msglist_*.selected.bg=#023269
|
msglist_*.selected.bg=#023269
|
||||||
msglist_*.bg=#11121D
|
msglist_*.bg=#11121D
|
||||||
|
|
||||||
dirlist_*.selected.bold=true
|
dirlist_*.selected.bold=true
|
||||||
dirlist_*.selected.bg=#023269
|
dirlist_*.selected.bg=#023269
|
||||||
dirlist_*.bg=#181825
|
dirlist_*.bg=#181825
|
||||||
|
|
||||||
statusline_default.fg=#9399b2
|
statusline_default.fg=#9399b2
|
||||||
statusline_default.bg=#2C3043
|
statusline_default.bg=#2C3043
|
||||||
statusline_error.bold=true
|
statusline_error.bold=true
|
||||||
statusline_success.bold=true
|
statusline_success.bold=true
|
||||||
|
|
||||||
spinner.bg=#11121D
|
spinner.bg=#11121D
|
||||||
|
|
||||||
[viewer]
|
[viewer]
|
||||||
header.bg=#181825
|
header.bg=#181825
|
||||||
url.fg=#89b4fa
|
url.fg=#89b4fa
|
||||||
url.underline=true
|
url.underline=true
|
||||||
header.bold=true
|
header.bold=true
|
||||||
signature.dim=true
|
signature.dim=true
|
||||||
diff_meta.bold=true
|
diff_meta.bold=true
|
||||||
diff_chunk.fg=#89b4fa
|
diff_chunk.fg=#89b4fa
|
||||||
diff_chunk_func.fg=#89b4fa
|
diff_chunk_func.fg=#89b4fa
|
||||||
diff_chunk_func.bold=true
|
diff_chunk_func.bold=true
|
||||||
diff_add.fg=#a6e3a1
|
diff_add.fg=#a6e3a1
|
||||||
diff_del.fg=#f38ba8
|
diff_del.fg=#f38ba8
|
||||||
quote_*.fg=#6c7086
|
quote_*.fg=#6c7086
|
||||||
quote_1.fg=#9399b2
|
quote_1.fg=#9399b2
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,233 +1,238 @@
|
||||||
|
{ inputs
|
||||||
|
, config
|
||||||
|
, pkgs
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
hyprland = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
||||||
|
playerctl = "${pkgs.playerctl}/bin/playerctl";
|
||||||
|
wl-paste = "${pkgs.wl-clipboard}/bin/wl-paste";
|
||||||
|
hyprpaper = "${pkgs.hyprpaper}/bin/hyprpaper";
|
||||||
|
waybar = "${pkgs.waybar}/bin/waybar";
|
||||||
|
scripts = "${config.xdg.configHome}/scripts";
|
||||||
|
wpctl = "${pkgs.wireplumber}/bin/wpctl";
|
||||||
|
alacritty = "${pkgs.alacritty}/bin/alacritty";
|
||||||
|
swaylock = "${pkgs.swaylock}/bin/swaylock";
|
||||||
|
rofi = "${pkgs.rofi}/bin/rofi";
|
||||||
|
jq = "${pkgs.jq}/bin/jq";
|
||||||
|
launch_alacritty = pkgs.writeShellScriptBin "launch_alacritty" ''
|
||||||
|
RUNNING_WAYPIPE=false
|
||||||
|
SSH_CLIENT=""
|
||||||
|
CHILD_PID=$(pgrep -P "$1")
|
||||||
|
|
||||||
|
if [ "$GRAND_CHILD_PID" != "" ]; then
|
||||||
|
GRAND_CHILD_NAME=$(ps -p "$GRAND_CHILD_PID" -o comm=)
|
||||||
|
if [ "$GRAND_CHILD_NAME" == "ssh" ]; then
|
||||||
|
CHILD_PID=$GRAND_CHILD_PID
|
||||||
|
SSH_CLIENT=$(ps -p "$CHILD_PID" -o args --no-headers | awk '{ print $2 }')
|
||||||
|
fi
|
||||||
|
if [ "$GRAND_CHILD_NAME" == "waypipe" ]; then
|
||||||
|
RUNNING_WAYPIPE=true
|
||||||
|
CHILD_PID=$(pgrep -P "$GRAND_CHILD_PID")
|
||||||
|
SSH_CLIENT=$(ps -p "$GRAND_CHILD_PID" -o args --no-headers | awk '{ print $4 }')
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ $RUNNING_WAYPIPE == true ]; then
|
||||||
|
PREVIOUS_SESSION_ID=$(grep -z "SSH_SESSION_ID" "/proc/$CHILD_PID/environ" | xargs -0 -n 1 | grep -oP "[0-9]*")
|
||||||
|
SSH_SESSION_ID=$RANDOM
|
||||||
|
${alacritty} -e zsh -c "SSH_SESSION_ID=$SSH_SESSION_ID waypipe ssh -t \"$SSH_CLIENT\" env SSH_SESSION_ID=\"$SSH_SESSION_ID\" PREVIOUS_SESSION_ID=\"$PREVIOUS_SESSION_ID\" \"zsh --login\""
|
||||||
|
else
|
||||||
|
if [ "$(ps -p "$1" -o comm=)" == "alacritty" ]; then
|
||||||
|
CWD=$(readlink -e /proc/"$CHILD_PID"/cwd)
|
||||||
|
if [ "$CWD" != "" ]; then
|
||||||
|
${alacritty} --working-directory "$CWD"
|
||||||
|
else
|
||||||
|
${alacritty}
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
${alacritty}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
in
|
||||||
{
|
{
|
||||||
inputs,
|
services.kdeconnect = {
|
||||||
config,
|
enable = true;
|
||||||
pkgs,
|
package = pkgs.kdePackages.kdeconnect-kde;
|
||||||
...
|
indicator = true;
|
||||||
}: let
|
};
|
||||||
hyprland = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
|
||||||
playerctl = "${pkgs.playerctl}/bin/playerctl";
|
|
||||||
wl-paste = "${pkgs.wl-clipboard}/bin/wl-paste";
|
|
||||||
hyprpaper = "${pkgs.hyprpaper}/bin/hyprpaper";
|
|
||||||
waybar = "${pkgs.waybar}/bin/waybar";
|
|
||||||
scripts = "${config.xdg.configHome}/scripts";
|
|
||||||
wpctl = "${pkgs.wireplumber}/bin/wpctl";
|
|
||||||
alacritty = "${pkgs.alacritty}/bin/alacritty";
|
|
||||||
swaylock = "${pkgs.swaylock}/bin/swaylock";
|
|
||||||
rofi = "${pkgs.rofi}/bin/rofi";
|
|
||||||
jq = "${pkgs.jq}/bin/jq";
|
|
||||||
launch_alacritty = pkgs.writeShellScriptBin "launch_alacritty" ''
|
|
||||||
RUNNING_WAYPIPE=false
|
|
||||||
SSH_CLIENT=""
|
|
||||||
CHILD_PID=$(pgrep -P "$1")
|
|
||||||
|
|
||||||
if [ "$GRAND_CHILD_PID" != "" ]; then
|
wayland.windowManager.hyprland = {
|
||||||
GRAND_CHILD_NAME=$(ps -p "$GRAND_CHILD_PID" -o comm=)
|
enable = true;
|
||||||
if [ "$GRAND_CHILD_NAME" == "ssh" ]; then
|
systemd.variables = [ "--all" ];
|
||||||
CHILD_PID=$GRAND_CHILD_PID
|
systemd.enable = true;
|
||||||
SSH_CLIENT=$(ps -p "$CHILD_PID" -o args --no-headers | awk '{ print $2 }')
|
systemd.enableXdgAutostart = true;
|
||||||
fi
|
xwayland.enable = true;
|
||||||
if [ "$GRAND_CHILD_NAME" == "waypipe" ]; then
|
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
||||||
RUNNING_WAYPIPE=true
|
plugins = [
|
||||||
CHILD_PID=$(pgrep -P "$GRAND_CHILD_PID")
|
inputs.split-monitor-workspaces.packages.${pkgs.system}.split-monitor-workspaces
|
||||||
SSH_CLIENT=$(ps -p "$GRAND_CHILD_PID" -o args --no-headers | awk '{ print $4 }')
|
];
|
||||||
fi
|
settings = {
|
||||||
fi
|
"$mainMod" = "SUPER";
|
||||||
|
exec-once = [
|
||||||
|
"hyprpaper"
|
||||||
if [ $RUNNING_WAYPIPE == true ]; then
|
"${wl-paste} --type text --watch cliphist store"
|
||||||
PREVIOUS_SESSION_ID=$(grep -z "SSH_SESSION_ID" "/proc/$CHILD_PID/environ" | xargs -0 -n 1 | grep -oP "[0-9]*")
|
"${wl-paste} --type image --watch cliphist store"
|
||||||
SSH_SESSION_ID=$RANDOM
|
# "${waybar}"
|
||||||
${alacritty} -e zsh -c "SSH_SESSION_ID=$SSH_SESSION_ID waypipe ssh -t \"$SSH_CLIENT\" env SSH_SESSION_ID=\"$SSH_SESSION_ID\" PREVIOUS_SESSION_ID=\"$PREVIOUS_SESSION_ID\" \"zsh --login\""
|
];
|
||||||
else
|
env = [
|
||||||
if [ "$(ps -p "$1" -o comm=)" == "alacritty" ]; then
|
"WLR_NO_HARDWARE_CURSORS,1"
|
||||||
CWD=$(readlink -e /proc/"$CHILD_PID"/cwd)
|
"TERMINAL,${alacritty}"
|
||||||
if [ "$CWD" != "" ]; then
|
"WLR_RENDERER_ALLOW_SOFTWARE,1"
|
||||||
${alacritty} --working-directory "$CWD"
|
];
|
||||||
else
|
debug = {
|
||||||
${alacritty}
|
disable_logs = false;
|
||||||
fi
|
};
|
||||||
else
|
windowrulev2 = [
|
||||||
${alacritty}
|
"float, title:^(rofi)(.*)$"
|
||||||
fi
|
"center, title:^(rofi)(.*)$"
|
||||||
fi
|
"noborder, title:^(rofi)(.*)$"
|
||||||
'';
|
"stayfocused, title:^()$,class:^(steam)$"
|
||||||
in {
|
"minsize 1 1, title:^()$,class:^(steam)$"
|
||||||
services.kdeconnect = {
|
"stayfocused, title:^()$,class:^(steam)$"
|
||||||
enable = true;
|
];
|
||||||
package = pkgs.kdePackages.kdeconnect-kde;
|
windowrule = [
|
||||||
indicator = true;
|
"noanim,waybar"
|
||||||
};
|
];
|
||||||
|
monitor = [
|
||||||
wayland.windowManager.hyprland = {
|
"DP-3,preferred,0x550,1"
|
||||||
enable = true;
|
"DP-2,preferred,1920x0,1"
|
||||||
systemd.variables = ["--all"];
|
"HDMI-A-1,preferred,5760x550,1"
|
||||||
systemd.enable = true;
|
];
|
||||||
systemd.enableXdgAutostart = true;
|
general = {
|
||||||
xwayland.enable = true;
|
gaps_in = 1;
|
||||||
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
gaps_out = 5;
|
||||||
plugins = [
|
border_size = 2;
|
||||||
inputs.split-monitor-workspaces.packages.${pkgs.system}.split-monitor-workspaces
|
"col.active_border" = "rgba(002f5fee)";
|
||||||
];
|
"col.inactive_border" = "rgba(ffffff00)";
|
||||||
settings = {
|
layout = "dwindle";
|
||||||
"$mainMod" = "SUPER";
|
};
|
||||||
exec-once = [
|
input = {
|
||||||
"hyprpaper"
|
kb_layout = "us";
|
||||||
"${wl-paste} --type text --watch cliphist store"
|
follow_mouse = 1;
|
||||||
"${wl-paste} --type image --watch cliphist store"
|
kb_options = "compose:rctrl, caps:super, altwin:swap_alt_win";
|
||||||
# "${waybar}"
|
numlock_by_default = true;
|
||||||
];
|
};
|
||||||
env = [
|
binds = {
|
||||||
"WLR_NO_HARDWARE_CURSORS,1"
|
scroll_event_delay = 1;
|
||||||
"TERMINAL,${alacritty}"
|
};
|
||||||
"WLR_RENDERER_ALLOW_SOFTWARE,1"
|
xwayland = {
|
||||||
];
|
force_zero_scaling = true;
|
||||||
debug = {
|
};
|
||||||
disable_logs = false;
|
misc = {
|
||||||
};
|
disable_hyprland_logo = 1;
|
||||||
windowrulev2 = [
|
};
|
||||||
"float, title:^(rofi)(.*)$"
|
decoration = {
|
||||||
"center, title:^(rofi)(.*)$"
|
rounding = 1;
|
||||||
"noborder, title:^(rofi)(.*)$"
|
blur = {
|
||||||
"stayfocused, title:^()$,class:^(steam)$"
|
enabled = false;
|
||||||
"minsize 1 1, title:^()$,class:^(steam)$"
|
|
||||||
"stayfocused, title:^()$,class:^(steam)$"
|
|
||||||
];
|
|
||||||
windowrule = [
|
|
||||||
"noanim,waybar"
|
|
||||||
];
|
|
||||||
monitor = [
|
|
||||||
"DP-3,preferred,0x550,1"
|
|
||||||
"DP-2,preferred,1920x0,1"
|
|
||||||
"HDMI-A-1,preferred,5760x550,1"
|
|
||||||
];
|
|
||||||
general = {
|
|
||||||
gaps_in = 1;
|
|
||||||
gaps_out = 5;
|
|
||||||
border_size = 2;
|
|
||||||
"col.active_border" = "rgba(002f5fee)";
|
|
||||||
"col.inactive_border" = "rgba(ffffff00)";
|
|
||||||
layout = "dwindle";
|
|
||||||
};
|
|
||||||
input = {
|
|
||||||
kb_layout = "us";
|
|
||||||
follow_mouse = 1;
|
|
||||||
kb_options = "compose:rctrl, caps:super, altwin:swap_alt_win";
|
|
||||||
numlock_by_default = true;
|
|
||||||
};
|
|
||||||
binds = {
|
|
||||||
scroll_event_delay = 1;
|
|
||||||
};
|
|
||||||
xwayland = {
|
|
||||||
force_zero_scaling = true;
|
|
||||||
};
|
|
||||||
misc = {
|
|
||||||
disable_hyprland_logo = 1;
|
|
||||||
};
|
|
||||||
decoration = {
|
|
||||||
rounding = 1;
|
|
||||||
blur = {
|
|
||||||
enabled = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
animations = {
|
|
||||||
enabled = "yes";
|
|
||||||
bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
|
|
||||||
animation = [
|
|
||||||
"windows, 1, 2, myBezier"
|
|
||||||
"windowsOut, 1, 2, default, popin 80%"
|
|
||||||
"border, 1, 2, default"
|
|
||||||
"borderangle, 1, 2, default"
|
|
||||||
"fade, 1, 2, default"
|
|
||||||
"workspaces, 1, 1, default"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
dwindle = {
|
|
||||||
preserve_split = "yes";
|
|
||||||
no_gaps_when_only = 1;
|
|
||||||
force_split = 2;
|
|
||||||
};
|
|
||||||
gestures = {
|
|
||||||
workspace_swipe = "on";
|
|
||||||
workspace_swipe_invert = false;
|
|
||||||
};
|
|
||||||
bindr = [
|
|
||||||
"$mainMod, SUPER_L, exec, pkill rofi || ${rofi} -show drun"
|
|
||||||
"$mainMod, SUPER_R, exec, pkill rofi || ${rofi} -show drun"
|
|
||||||
];
|
|
||||||
bindm = [
|
|
||||||
"$mainMod, mouse:272, movewindow"
|
|
||||||
"$mainMod, mouse:273, resizewindow"
|
|
||||||
];
|
|
||||||
bind = [
|
|
||||||
"$mainMod, return, exec, ${launch_alacritty}/bin/launch_alacritty $(hyprctl activewindow -j | ${jq} .pid)"
|
|
||||||
"$mainMod SHIFT, return, exec, ${alacritty}"
|
|
||||||
"$mainMod, Q, killactive,"
|
|
||||||
"$mainMod, A, exec, nautilus"
|
|
||||||
"$mainMod, S, exec, gnome-calendar"
|
|
||||||
"$mainMod, B, exec, MOZ_ENABLE_WAYLAND=1 firefox"
|
|
||||||
"$mainMod, M, fullscreen, 1"
|
|
||||||
"$mainMod, F11, fullscreen"
|
|
||||||
"$mainMod, F, togglefloating,"
|
|
||||||
"$mainMod, SPACE, togglesplit, # dwindle"
|
|
||||||
"CONTROL_L ALT_L, L, exec, ${swaylock}"
|
|
||||||
"$mainMod, C, exec, cliphist list | awk '{print $0, \"\0icon\x1fcom.github.davidmhewitt.clipped\"}' | ${rofi} -dmenu -display-columns 2 | cliphist decode | wl-copy"
|
|
||||||
"$mainMod, Y, exec, ${config.xdg.configHome}/rofi/rofi-ykman.sh"
|
|
||||||
"$mainMod, N, exec, ${config.xdg.configHome}/rofi/rofi-ssh.sh"
|
|
||||||
|
|
||||||
"$mainMod, Escape, exec, ${rofi} -show power-menu -modi power-menu:${scripts}/rofi-power-menu"
|
|
||||||
|
|
||||||
",XF86MonBrightnessUp, exec, xbacklight -inc 10"
|
|
||||||
",XF86MonBrightnessDown, exec, xbacklight -dec 10"
|
|
||||||
",XF86AudioRaiseVolume, exec, ${wpctl} set-volume @DEFAULT_AUDIO_SINK@ 10%+ --limit 1.0"
|
|
||||||
",XF86AudioLowerVolume, exec, ${wpctl} set-volume @DEFAULT_AUDIO_SINK@ 10%-"
|
|
||||||
",XF86AudioMicMute, exec, ${wpctl} set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
|
|
||||||
",mouse_right, exec, ${wpctl} set-volume @DEFAULT_AUDIO_SINK@ 1%+ --limit 1.0"
|
|
||||||
",mouse_left, exec, ${wpctl} set-volume @DEFAULT_AUDIO_SINK@ 1%-"
|
|
||||||
",XF86AudioMute, exec, ${wpctl} set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
|
||||||
",XF86AudioNext, exec, ${playerctl} next"
|
|
||||||
",XF86AudioPrev, exec, ${playerctl} previous"
|
|
||||||
"$mainMod,XF86AudioMute, exec, ${playerctl} play-pause"
|
|
||||||
"$mainMod,XF86AudioRaiseVolume, exec, ${playerctl} next"
|
|
||||||
"$mainMod,XF86AudioLowerVolume, exec, ${playerctl} previous"
|
|
||||||
", Print, exec, grim -g \"$(slurp -d)\" - | wl-copy"
|
|
||||||
|
|
||||||
"$mainMod, H, exec, ${scripts}/vim-hypr-nav.sh l"
|
|
||||||
"$mainMod, L, exec, ${scripts}/vim-hypr-nav.sh r"
|
|
||||||
"$mainMod, K, exec, ${scripts}/vim-hypr-nav.sh u"
|
|
||||||
"$mainMod, J, exec, ${scripts}/vim-hypr-nav.sh d"
|
|
||||||
"$mainMod CONTROL_L, H, swapwindow, l"
|
|
||||||
"$mainMod CONTROL_L, L, swapwindow, r"
|
|
||||||
"$mainMod CONTROL_L, K, swapwindow, u"
|
|
||||||
"$mainMod CONTROL_L, J, swapwindow, d"
|
|
||||||
"$mainMod SHIFT, H, movewindow, l"
|
|
||||||
"$mainMod SHIFT, L, movewindow, r"
|
|
||||||
"$mainMod SHIFT, K, movewindow, u"
|
|
||||||
"$mainMod SHIFT, J, movewindow, d"
|
|
||||||
"$mainMod ALT, L, resizeactive, 20 0"
|
|
||||||
"$mainMod ALT, H, resizeactive, -20 0"
|
|
||||||
"$mainMod ALT, K, resizeactive, 0 -20"
|
|
||||||
"$mainMod ALT, J, resizeactive, 0 20"
|
|
||||||
"$mainMod SHIFT, T, split-movetoworkspace, empty"
|
|
||||||
"$mainMod, T, split-workspace, empty"
|
|
||||||
"$mainMod, TAB, split-workspace, m+1"
|
|
||||||
"$mainMod SHIFT, TAB, split-workspace, m-1"
|
|
||||||
]
|
|
||||||
++ (
|
|
||||||
# workspaces
|
|
||||||
# binds $mod + [shift +] {1..10} to [move to] workspace {1..10}
|
|
||||||
builtins.concatLists (builtins.genList (
|
|
||||||
x: let
|
|
||||||
ws = let
|
|
||||||
c = (x + 1) / 10;
|
|
||||||
in
|
|
||||||
builtins.toString (x + 1 - (c * 10));
|
|
||||||
in [
|
|
||||||
"$mainMod, ${ws}, split-workspace, ${toString (x + 1)}"
|
|
||||||
"$mod SHIFT, ${ws}, split-movetoworkspace, ${toString (x + 1)}"
|
|
||||||
]
|
|
||||||
)
|
|
||||||
10)
|
|
||||||
);
|
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
animations = {
|
||||||
|
enabled = "yes";
|
||||||
|
bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
|
||||||
|
animation = [
|
||||||
|
"windows, 1, 2, myBezier"
|
||||||
|
"windowsOut, 1, 2, default, popin 80%"
|
||||||
|
"border, 1, 2, default"
|
||||||
|
"borderangle, 1, 2, default"
|
||||||
|
"fade, 1, 2, default"
|
||||||
|
"workspaces, 1, 1, default"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
dwindle = {
|
||||||
|
preserve_split = "yes";
|
||||||
|
no_gaps_when_only = 1;
|
||||||
|
force_split = 2;
|
||||||
|
};
|
||||||
|
gestures = {
|
||||||
|
workspace_swipe = "on";
|
||||||
|
workspace_swipe_invert = false;
|
||||||
|
};
|
||||||
|
bindr = [
|
||||||
|
"$mainMod, SUPER_L, exec, pkill rofi || ${rofi} -show drun"
|
||||||
|
"$mainMod, SUPER_R, exec, pkill rofi || ${rofi} -show drun"
|
||||||
|
];
|
||||||
|
bindm = [
|
||||||
|
"$mainMod, mouse:272, movewindow"
|
||||||
|
"$mainMod, mouse:273, resizewindow"
|
||||||
|
];
|
||||||
|
bind = [
|
||||||
|
"$mainMod, return, exec, ${launch_alacritty}/bin/launch_alacritty $(hyprctl activewindow -j | ${jq} .pid)"
|
||||||
|
"$mainMod SHIFT, return, exec, ${alacritty}"
|
||||||
|
"$mainMod, Q, killactive,"
|
||||||
|
"$mainMod, A, exec, nautilus"
|
||||||
|
"$mainMod, S, exec, gnome-calendar"
|
||||||
|
"$mainMod, B, exec, MOZ_ENABLE_WAYLAND=1 firefox"
|
||||||
|
"$mainMod, M, fullscreen, 1"
|
||||||
|
"$mainMod, F11, fullscreen"
|
||||||
|
"$mainMod, F, togglefloating,"
|
||||||
|
"$mainMod, SPACE, togglesplit, # dwindle"
|
||||||
|
"CONTROL_L ALT_L, L, exec, ${swaylock}"
|
||||||
|
"$mainMod, C, exec, cliphist list | awk '{print $0, \"\0icon\x1fcom.github.davidmhewitt.clipped\"}' | ${rofi} -dmenu -display-columns 2 | cliphist decode | wl-copy"
|
||||||
|
"$mainMod, Y, exec, ${config.xdg.configHome}/rofi/rofi-ykman.sh"
|
||||||
|
"$mainMod, N, exec, ${config.xdg.configHome}/rofi/rofi-ssh.sh"
|
||||||
|
|
||||||
|
"$mainMod, Escape, exec, ${rofi} -show power-menu -modi power-menu:${scripts}/rofi-power-menu"
|
||||||
|
|
||||||
|
",XF86MonBrightnessUp, exec, xbacklight -inc 10"
|
||||||
|
",XF86MonBrightnessDown, exec, xbacklight -dec 10"
|
||||||
|
",XF86AudioRaiseVolume, exec, ${wpctl} set-volume @DEFAULT_AUDIO_SINK@ 10%+ --limit 1.0"
|
||||||
|
",XF86AudioLowerVolume, exec, ${wpctl} set-volume @DEFAULT_AUDIO_SINK@ 10%-"
|
||||||
|
",XF86AudioMicMute, exec, ${wpctl} set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
|
||||||
|
",mouse_right, exec, ${wpctl} set-volume @DEFAULT_AUDIO_SINK@ 1%+ --limit 1.0"
|
||||||
|
",mouse_left, exec, ${wpctl} set-volume @DEFAULT_AUDIO_SINK@ 1%-"
|
||||||
|
",XF86AudioMute, exec, ${wpctl} set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||||
|
",XF86AudioNext, exec, ${playerctl} next"
|
||||||
|
",XF86AudioPrev, exec, ${playerctl} previous"
|
||||||
|
"$mainMod,XF86AudioMute, exec, ${playerctl} play-pause"
|
||||||
|
"$mainMod,XF86AudioRaiseVolume, exec, ${playerctl} next"
|
||||||
|
"$mainMod,XF86AudioLowerVolume, exec, ${playerctl} previous"
|
||||||
|
", Print, exec, grim -g \"$(slurp -d)\" - | wl-copy"
|
||||||
|
|
||||||
|
"$mainMod, H, exec, ${scripts}/vim-hypr-nav.sh l"
|
||||||
|
"$mainMod, L, exec, ${scripts}/vim-hypr-nav.sh r"
|
||||||
|
"$mainMod, K, exec, ${scripts}/vim-hypr-nav.sh u"
|
||||||
|
"$mainMod, J, exec, ${scripts}/vim-hypr-nav.sh d"
|
||||||
|
"$mainMod CONTROL_L, H, swapwindow, l"
|
||||||
|
"$mainMod CONTROL_L, L, swapwindow, r"
|
||||||
|
"$mainMod CONTROL_L, K, swapwindow, u"
|
||||||
|
"$mainMod CONTROL_L, J, swapwindow, d"
|
||||||
|
"$mainMod SHIFT, H, movewindow, l"
|
||||||
|
"$mainMod SHIFT, L, movewindow, r"
|
||||||
|
"$mainMod SHIFT, K, movewindow, u"
|
||||||
|
"$mainMod SHIFT, J, movewindow, d"
|
||||||
|
"$mainMod ALT, L, resizeactive, 20 0"
|
||||||
|
"$mainMod ALT, H, resizeactive, -20 0"
|
||||||
|
"$mainMod ALT, K, resizeactive, 0 -20"
|
||||||
|
"$mainMod ALT, J, resizeactive, 0 20"
|
||||||
|
"$mainMod SHIFT, T, split-movetoworkspace, empty"
|
||||||
|
"$mainMod, T, split-workspace, empty"
|
||||||
|
"$mainMod, TAB, split-workspace, m+1"
|
||||||
|
"$mainMod SHIFT, TAB, split-workspace, m-1"
|
||||||
|
]
|
||||||
|
++ (
|
||||||
|
# workspaces
|
||||||
|
# binds $mod + [shift +] {1..10} to [move to] workspace {1..10}
|
||||||
|
builtins.concatLists (builtins.genList
|
||||||
|
(
|
||||||
|
x:
|
||||||
|
let
|
||||||
|
ws =
|
||||||
|
let
|
||||||
|
c = (x + 1) / 10;
|
||||||
|
in
|
||||||
|
builtins.toString (x + 1 - (c * 10));
|
||||||
|
in
|
||||||
|
[
|
||||||
|
"$mainMod, ${ws}, split-workspace, ${toString (x + 1)}"
|
||||||
|
"$mod SHIFT, ${ws}, split-movetoworkspace, ${toString (x + 1)}"
|
||||||
|
]
|
||||||
|
)
|
||||||
|
10)
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,58 +1,58 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
clang
|
clang
|
||||||
go
|
go
|
||||||
nodejs
|
nodejs
|
||||||
luarocks
|
luarocks
|
||||||
jre
|
jre
|
||||||
python3
|
python3
|
||||||
python311Packages.pip
|
python311Packages.pip
|
||||||
julia
|
julia
|
||||||
unzip
|
unzip
|
||||||
dotnet-sdk_8
|
dotnet-sdk_8
|
||||||
cargo
|
cargo
|
||||||
];
|
];
|
||||||
|
|
||||||
home.file."${config.xdg.configHome}/nvim" = {
|
home.file."${config.xdg.configHome}/nvim" = {
|
||||||
source = ./files;
|
source = ./files;
|
||||||
recursive = true;
|
recursive = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
home.file.".clang-tidy".text = ''
|
home.file.".clang-tidy".text = ''
|
||||||
Checks: "*,
|
Checks: "*,
|
||||||
-abseil-*,
|
-abseil-*,
|
||||||
-altera-*,
|
-altera-*,
|
||||||
-android-*,
|
-android-*,
|
||||||
-fuchsia-*,
|
-fuchsia-*,
|
||||||
-google-*,
|
-google-*,
|
||||||
-llvm*,
|
-llvm*,
|
||||||
-zircon-*,
|
-zircon-*,
|
||||||
-bugprone-easily-swappable-parameters
|
-bugprone-easily-swappable-parameters
|
||||||
-readability-identifier-length
|
-readability-identifier-length
|
||||||
-readability-avoid-const-params-in-decls,
|
-readability-avoid-const-params-in-decls,
|
||||||
-readability-magic-numbers
|
-readability-magic-numbers
|
||||||
-bugprone-narrowing-conversions
|
-bugprone-narrowing-conversions
|
||||||
-modernize-use-trailing-return-type
|
-modernize-use-trailing-return-type
|
||||||
-cppcoreguidelines-pro-type-union-access
|
-cppcoreguidelines-pro-type-union-access
|
||||||
-modernize-use-nodiscard
|
-modernize-use-nodiscard
|
||||||
-cppcoreguidelines-narrowing-conversions
|
-cppcoreguidelines-narrowing-conversions
|
||||||
-cppcoreguidelines-avoid-magic-numbers
|
-cppcoreguidelines-avoid-magic-numbers
|
||||||
-Wsign-compare
|
-Wsign-compare
|
||||||
-hicpp-uppercase-literal-suffix
|
-hicpp-uppercase-literal-suffix
|
||||||
-readability-uppercase-literal-suffix
|
-readability-uppercase-literal-suffix
|
||||||
-readability-named-parameter
|
-readability-named-parameter
|
||||||
-performance-avoid-endl"
|
-performance-avoid-endl"
|
||||||
WarningsAsErrors: '''
|
WarningsAsErrors: '''
|
||||||
HeaderFilterRegex: '''
|
HeaderFilterRegex: '''
|
||||||
FormatStyle: none
|
FormatStyle: none
|
||||||
'';
|
'';
|
||||||
|
|
||||||
programs.neovim = {
|
programs.neovim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
viAlias = true;
|
viAlias = true;
|
||||||
vimAlias = true;
|
vimAlias = true;
|
||||||
defaultEditor = true;
|
defaultEditor = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,98 +1,98 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
fzy
|
fzy
|
||||||
lf
|
lf
|
||||||
curl
|
curl
|
||||||
fd
|
fd
|
||||||
zsh-powerlevel10k
|
zsh-powerlevel10k
|
||||||
zsh-autocomplete
|
zsh-autocomplete
|
||||||
zsh-vi-mode
|
zsh-vi-mode
|
||||||
ripgrep
|
ripgrep
|
||||||
rsync
|
rsync
|
||||||
moreutils
|
moreutils
|
||||||
|
];
|
||||||
|
home.sessionVariables = {
|
||||||
|
BROWSER = "firefox";
|
||||||
|
GPULAB_CERT = "${config.xdg.dataHome}/gpulab.pem";
|
||||||
|
GPULAB_DEV = "False";
|
||||||
|
GCC_COLORS = "error = '01;31:warning = '01;35:note = '01;36:caret = '01;32:locus = '01:quote = '01'";
|
||||||
|
ARCHFLAGS = "-arch x86_64";
|
||||||
|
TERM = "screen-256color";
|
||||||
|
PYTHONDONTWRITEBYTECODE = "1";
|
||||||
|
GOPATH = "${config.xdg.dataHome}/go";
|
||||||
|
};
|
||||||
|
home.file."${config.xdg.configHome}/zsh" = {
|
||||||
|
source = ./files;
|
||||||
|
recursive = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.command-not-found.enable = true;
|
||||||
|
programs.zoxide = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
};
|
||||||
|
programs.fzf = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
programs.zsh = {
|
||||||
|
enable = true;
|
||||||
|
enableCompletion = true;
|
||||||
|
syntaxHighlighting.enable = false;
|
||||||
|
autosuggestion.enable = true;
|
||||||
|
|
||||||
|
initExtraFirst = ''
|
||||||
|
source ${config.xdg.configHome}/zsh/p10k.zsh
|
||||||
|
function zvm_after_init() {
|
||||||
|
source ${config.xdg.configHome}/zsh/term.zsh
|
||||||
|
source ${config.xdg.configHome}/zsh/completion.zsh
|
||||||
|
source ${config.xdg.configHome}/zsh/waypipe.zsh
|
||||||
|
if [ -n "\$\{commands[fzf-share]\}" ]; then
|
||||||
|
source "$(fzf-share)/key-bindings.zsh"
|
||||||
|
source "$(fzf-share)/completion.zsh"
|
||||||
|
fi
|
||||||
|
source ${config.xdg.configHome}/zsh/keys.zsh
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
|
||||||
|
shellAliases = {
|
||||||
|
mallorea = "run_waypipe mallorea";
|
||||||
|
vault = "run_waypipe vault";
|
||||||
|
riva = "run_waypipe riva";
|
||||||
|
kell = "run_waypipe kell";
|
||||||
|
aloria = "run_waypipe aloria";
|
||||||
|
|
||||||
|
ll = "ls -lhat";
|
||||||
|
ls = "ls --color=auto";
|
||||||
|
lf = "cd \"\$(${pkgs.lf}/bin/lf -print-last-dir)\"";
|
||||||
|
|
||||||
|
compress = "tar --use-compress-program = lbzip2 -cvf";
|
||||||
|
wget = "wget --hsts-file = \"$XDG_DATA_HOME/wget-hsts\"";
|
||||||
|
python = "python3";
|
||||||
|
v = "nvim -c ':lua require(\"oil\").open()' && cd \"\$(cat /tmp/oil_dir 2> /dev/null || pwd)\"";
|
||||||
|
cpr = "rsync --archive -hh --partial --info = stats1,progress2 --modify-window = 1";
|
||||||
|
mvr = "rsync --archive -hh --partial --info = stats1,progress2 --modify-window = 1 --remove-source-files";
|
||||||
|
rg = "rg -i --colors 'match:bg:yellow' --colors 'match:fg:black' --colors 'match:style:nobold' --colors 'path:fg:green' --colors 'path:style:bold' --colors 'line:fg:yellow' --colors 'line:style:bold'";
|
||||||
|
ag = "rg -i --colors 'match:bg:yellow' --colors 'match:fg:black' --colors 'match:style:nobold' --colors 'path:fg:green' --colors 'path:style:bold' --colors 'line:fg:yellow' --colors 'line:style:bold'";
|
||||||
|
push = "git add -A && git commit -m '`date`' && git push";
|
||||||
|
reset = "tput reset";
|
||||||
|
};
|
||||||
|
history.size = 10000000;
|
||||||
|
history.save = 10000000;
|
||||||
|
history.path = "${config.xdg.dataHome}/zsh/history";
|
||||||
|
autocd = true;
|
||||||
|
plugins = [
|
||||||
|
{
|
||||||
|
name = "zsh-powerlevel10k";
|
||||||
|
src = "${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/";
|
||||||
|
file = "powerlevel10k.zsh-theme";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "vi-mode";
|
||||||
|
src = pkgs.zsh-vi-mode;
|
||||||
|
file = "share/zsh-vi-mode/zsh-vi-mode.plugin.zsh";
|
||||||
|
}
|
||||||
];
|
];
|
||||||
home.sessionVariables = {
|
};
|
||||||
BROWSER = "firefox";
|
|
||||||
GPULAB_CERT = "${config.xdg.dataHome}/gpulab.pem";
|
|
||||||
GPULAB_DEV = "False";
|
|
||||||
GCC_COLORS = "error = '01;31:warning = '01;35:note = '01;36:caret = '01;32:locus = '01:quote = '01'";
|
|
||||||
ARCHFLAGS = "-arch x86_64";
|
|
||||||
TERM = "screen-256color";
|
|
||||||
PYTHONDONTWRITEBYTECODE = "1";
|
|
||||||
GOPATH = "${config.xdg.dataHome}/go";
|
|
||||||
};
|
|
||||||
home.file."${config.xdg.configHome}/zsh" = {
|
|
||||||
source = ./files;
|
|
||||||
recursive = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.command-not-found.enable = true;
|
|
||||||
programs.zoxide = {
|
|
||||||
enable = true;
|
|
||||||
enableZshIntegration = true;
|
|
||||||
};
|
|
||||||
programs.fzf = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
programs.zsh = {
|
|
||||||
enable = true;
|
|
||||||
enableCompletion = true;
|
|
||||||
syntaxHighlighting.enable = false;
|
|
||||||
autosuggestion.enable = true;
|
|
||||||
|
|
||||||
initExtraFirst = ''
|
|
||||||
source ${config.xdg.configHome}/zsh/p10k.zsh
|
|
||||||
function zvm_after_init() {
|
|
||||||
source ${config.xdg.configHome}/zsh/term.zsh
|
|
||||||
source ${config.xdg.configHome}/zsh/completion.zsh
|
|
||||||
source ${config.xdg.configHome}/zsh/waypipe.zsh
|
|
||||||
if [ -n "\$\{commands[fzf-share]\}" ]; then
|
|
||||||
source "$(fzf-share)/key-bindings.zsh"
|
|
||||||
source "$(fzf-share)/completion.zsh"
|
|
||||||
fi
|
|
||||||
source ${config.xdg.configHome}/zsh/keys.zsh
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
|
|
||||||
shellAliases = {
|
|
||||||
mallorea = "run_waypipe mallorea";
|
|
||||||
vault = "run_waypipe vault";
|
|
||||||
riva = "run_waypipe riva";
|
|
||||||
kell = "run_waypipe kell";
|
|
||||||
aloria = "run_waypipe aloria";
|
|
||||||
|
|
||||||
ll = "ls -lhat";
|
|
||||||
ls = "ls --color=auto";
|
|
||||||
lf = "cd \"\$(${pkgs.lf}/bin/lf -print-last-dir)\"";
|
|
||||||
|
|
||||||
compress = "tar --use-compress-program = lbzip2 -cvf";
|
|
||||||
wget = "wget --hsts-file = \"$XDG_DATA_HOME/wget-hsts\"";
|
|
||||||
python = "python3";
|
|
||||||
v = "nvim -c ':lua require(\"oil\").open()' && cd \"\$(cat /tmp/oil_dir 2> /dev/null || pwd)\"";
|
|
||||||
cpr = "rsync --archive -hh --partial --info = stats1,progress2 --modify-window = 1";
|
|
||||||
mvr = "rsync --archive -hh --partial --info = stats1,progress2 --modify-window = 1 --remove-source-files";
|
|
||||||
rg = "rg -i --colors 'match:bg:yellow' --colors 'match:fg:black' --colors 'match:style:nobold' --colors 'path:fg:green' --colors 'path:style:bold' --colors 'line:fg:yellow' --colors 'line:style:bold'";
|
|
||||||
ag = "rg -i --colors 'match:bg:yellow' --colors 'match:fg:black' --colors 'match:style:nobold' --colors 'path:fg:green' --colors 'path:style:bold' --colors 'line:fg:yellow' --colors 'line:style:bold'";
|
|
||||||
push = "git add -A && git commit -m '`date`' && git push";
|
|
||||||
reset = "tput reset";
|
|
||||||
};
|
|
||||||
history.size = 10000000;
|
|
||||||
history.save = 10000000;
|
|
||||||
history.path = "${config.xdg.dataHome}/zsh/history";
|
|
||||||
autocd = true;
|
|
||||||
plugins = [
|
|
||||||
{
|
|
||||||
name = "zsh-powerlevel10k";
|
|
||||||
src = "${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/";
|
|
||||||
file = "powerlevel10k.zsh-theme";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "vi-mode";
|
|
||||||
src = pkgs.zsh-vi-mode;
|
|
||||||
file = "share/zsh-vi-mode/zsh-vi-mode.plugin.zsh";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue