aaaaaaaaaaaaaaaaaaaaaaaaa
This commit is contained in:
parent
a4cd48ad93
commit
55b1c49913
6 changed files with 215 additions and 67 deletions
|
@ -1,6 +1,4 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
];
|
||||
imports = [ ./desktop.nix ];
|
||||
}
|
||||
|
|
87
modules/desktop.nix
Normal file
87
modules/desktop.nix
Normal file
|
@ -0,0 +1,87 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.jade.desktop;
|
||||
window-screenshot = pkgs.writeShellScriptBin "window-screenshot.sh" ''
|
||||
unset x y w h
|
||||
eval $(xwininfo -id $(xdotool getactivewindow) |
|
||||
sed -n -e "s/^ \+Absolute upper-left X: \+\([0-9]\+\).*/x=\1/p" \
|
||||
-e "s/^ \+Absolute upper-left Y: \+\([0-9]\+\).*/y=\1/p" \
|
||||
-e "s/^ \+Width: \+\([0-9]\+\).*/w=\1/p" \
|
||||
-e "s/^ \+Height: \+\([0-9]\+\).*/h=\1/p" )
|
||||
echo -n "''$x ''$y ''$w ''$h"
|
||||
flameshot gui --region "''${w}x''${h}+''${x}+''${y}" -c -p ~/Pictures/screenshots/
|
||||
'';
|
||||
in with lib; {
|
||||
options.jade.desktop = {
|
||||
enable = mkEnableOption "Enable the i3 setup";
|
||||
};
|
||||
config = mkIf cfg.enable {
|
||||
home-manager.users.jade = { pkgs, ... }: {
|
||||
home.packages = with pkgs; [
|
||||
gnome.gdm i3lock-fancy rofi rofimoji volumeicon feh xorg.xinput dunst
|
||||
arandr lxappearance gruvbox-dark-gtk gruvbox-dark-icons-gtk
|
||||
gruvterial-theme flameshot tesseract5 imagemagick xclip polybar kitty
|
||||
xkeysnail gtk-engine-murrine playerctl xmacro
|
||||
window-screenshot
|
||||
];
|
||||
xsession = {
|
||||
enable = true;
|
||||
windowManager.i3 = {
|
||||
enable = true;
|
||||
package = pkgs.i3-gaps;
|
||||
config = {
|
||||
terminal = "kitty";
|
||||
modifier = "Mod4";
|
||||
gaps = {
|
||||
inner = 15;
|
||||
outer = 0;
|
||||
smartGaps = true;
|
||||
};
|
||||
modes = {
|
||||
resize = with {
|
||||
aaa = builtins.trace "foo" "bar";
|
||||
mod = builtins.trace config config.xsession.windowManager.i3.config.modifier;
|
||||
}; {
|
||||
"${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;
|
||||
}; {
|
||||
# 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}+c" = "focus child";
|
||||
# custom script shit
|
||||
"${mod}+w" = "exec window-screenshot.sh";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue