jdfadskfljfsfalkdsfjaklaaaaaaaaaaaaaaaaaaa
This commit is contained in:
parent
55b1c49913
commit
9833180135
7 changed files with 372 additions and 38 deletions
40
common.nix
40
common.nix
|
@ -31,29 +31,29 @@ with builtins;
|
||||||
home.sessionVariables.TZ = nixosConfig.time.timeZone;
|
home.sessionVariables.TZ = nixosConfig.time.timeZone;
|
||||||
};
|
};
|
||||||
|
|
||||||
#services.xserver = {
|
services.xserver = {
|
||||||
#enable = true;
|
enable = true;
|
||||||
|
|
||||||
#desktopManager = {
|
desktopManager = {
|
||||||
#xterm.enable = false;
|
xterm.enable = false;
|
||||||
#};
|
};
|
||||||
|
|
||||||
#displayManager = {
|
displayManager = {
|
||||||
#defaultSession = "none+i3";
|
defaultSession = "none+i3";
|
||||||
#gdm.enable = true;
|
gdm.enable = true;
|
||||||
#};
|
};
|
||||||
|
|
||||||
#windowManager.i3 = {
|
windowManager.i3 = {
|
||||||
#enable = true;
|
enable = true;
|
||||||
#package = pkgs.i3-gaps;
|
package = pkgs.i3-gaps;
|
||||||
#extraPackages = with pkgs; [
|
extraPackages = with pkgs; [
|
||||||
## gnome.gdm i3lock-fancy rofi rofimoji volumeicon feh xorg.xinput dunst
|
gnome.gdm i3lock-fancy rofi rofimoji volumeicon feh xorg.xinput dunst
|
||||||
## arandr lxappearance gruvbox-dark-gtk gruvbox-dark-icons-gtk
|
arandr lxappearance gruvbox-dark-gtk gruvbox-dark-icons-gtk
|
||||||
## gruvterial-theme flameshot tesseract5 imagemagick xclip polybar kitty
|
gruvterial-theme flameshot tesseract5 imagemagick xclip polybar kitty
|
||||||
## xkeysnail gtk-engine-murrine playerctl xmacro
|
xkeysnail gtk-engine-murrine playerctl xmacro
|
||||||
#];
|
];
|
||||||
#};
|
};
|
||||||
#};
|
};
|
||||||
programs.dconf.enable = true;
|
programs.dconf.enable = true;
|
||||||
|
|
||||||
qt5.platformTheme = "qt5ct";
|
qt5.platformTheme = "qt5ct";
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.jade.desktop;
|
cfg = config.jade.desktop;
|
||||||
|
# Screenshot scripts {{{
|
||||||
window-screenshot = pkgs.writeShellScriptBin "window-screenshot.sh" ''
|
window-screenshot = pkgs.writeShellScriptBin "window-screenshot.sh" ''
|
||||||
unset x y w h
|
unset x y w h
|
||||||
eval $(xwininfo -id $(xdotool getactivewindow) |
|
eval $(xwininfo -id $(xdotool getactivewindow) |
|
||||||
|
@ -12,19 +13,77 @@ let
|
||||||
echo -n "''$x ''$y ''$w ''$h"
|
echo -n "''$x ''$y ''$w ''$h"
|
||||||
flameshot gui --region "''${w}x''${h}+''${x}+''${y}" -c -p ~/Pictures/screenshots/
|
flameshot gui --region "''${w}x''${h}+''${x}+''${y}" -c -p ~/Pictures/screenshots/
|
||||||
'';
|
'';
|
||||||
|
# }}}
|
||||||
|
# Desktop ctl {{{
|
||||||
|
desktop-ctl = pkgs.writeShellScriptBin "desktop-ctl.sh" ''
|
||||||
|
items="lock screen;log out;toggle picom;shut down;reboot;update all"
|
||||||
|
|
||||||
|
selection=$(echo $items | rofi -sep ";" -dmenu)
|
||||||
|
|
||||||
|
case $selection in
|
||||||
|
"lock screen")
|
||||||
|
i3lock-fancy
|
||||||
|
;;
|
||||||
|
"log out")
|
||||||
|
pkill i3
|
||||||
|
;;
|
||||||
|
"toggle picom")
|
||||||
|
pkill picom || picom --experimental-backend -b
|
||||||
|
;;
|
||||||
|
"shut down")
|
||||||
|
shutdown now
|
||||||
|
;;
|
||||||
|
"reboot")
|
||||||
|
systemctl reboot
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
'';
|
||||||
|
# }}}
|
||||||
|
# Macro scripts {{{
|
||||||
|
em-record = pkgs.writeShellScriptBin "em-record.sh" ''
|
||||||
|
register=$(ls $HOME/xmacros | rofi -dmenu)
|
||||||
|
count=$(echo "2;5;10;20;50;100" | rofi -dmenu -sep ";" -l 5)
|
||||||
|
|
||||||
|
for i in $(seq $count); do
|
||||||
|
echo $i
|
||||||
|
xmacroplay "$DISPLAY" < $HOME/xmacros/$register
|
||||||
|
done
|
||||||
|
register=$(ls $HOME/xmacros | rofi -dmenu)
|
||||||
|
|
||||||
|
xmacrorec2 > $HOME/xmacros/$register
|
||||||
|
'';
|
||||||
|
em-play = pkgs.writeShellScriptBin "em-play.sh" ''
|
||||||
|
register=$(ls $HOME/xmacros | rofi -dmenu)
|
||||||
|
|
||||||
|
xmacroplay "$DISPLAY" < $HOME/xmacros/$register
|
||||||
|
'';
|
||||||
|
em-play-loop = pkgs.writeShellScriptBin "em-play-loop.sh" ''
|
||||||
|
register=$(ls $HOME/xmacros | rofi -dmenu)
|
||||||
|
count=$(echo "2;5;10;20;50;100" | rofi -dmenu -sep ";" -l 5)
|
||||||
|
|
||||||
|
for i in $(seq $count); do
|
||||||
|
echo $i
|
||||||
|
xmacroplay "$DISPLAY" < $HOME/xmacros/$register
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
# }}}
|
||||||
in with lib; {
|
in with lib; {
|
||||||
options.jade.desktop = {
|
options.jade.desktop = {
|
||||||
enable = mkEnableOption "Enable the i3 setup";
|
enable = mkEnableOption "Enable the i3 setup";
|
||||||
|
compositing = mkEnableOption "Enable compositing via picom";
|
||||||
};
|
};
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
home-manager.users.jade = { pkgs, ... }: {
|
home-manager.users.jade = { pkgs, ... }: {
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
gnome.gdm i3lock-fancy rofi rofimoji volumeicon feh xorg.xinput dunst
|
# external
|
||||||
|
i3lock-fancy rofi rofimoji volumeicon feh xorg.xinput dunst
|
||||||
arandr lxappearance gruvbox-dark-gtk gruvbox-dark-icons-gtk
|
arandr lxappearance gruvbox-dark-gtk gruvbox-dark-icons-gtk
|
||||||
gruvterial-theme flameshot tesseract5 imagemagick xclip polybar kitty
|
gruvterial-theme flameshot tesseract5 imagemagick xclip polybar kitty
|
||||||
xkeysnail gtk-engine-murrine playerctl xmacro
|
xkeysnail gtk-engine-murrine playerctl xmacro
|
||||||
window-screenshot
|
# custom scripts
|
||||||
|
window-screenshot desktop-ctl em-record em-play em-play-loop
|
||||||
];
|
];
|
||||||
|
# i3 {{{
|
||||||
xsession = {
|
xsession = {
|
||||||
enable = true;
|
enable = true;
|
||||||
windowManager.i3 = {
|
windowManager.i3 = {
|
||||||
|
@ -32,17 +91,31 @@ in with lib; {
|
||||||
package = pkgs.i3-gaps;
|
package = pkgs.i3-gaps;
|
||||||
config = {
|
config = {
|
||||||
terminal = "kitty";
|
terminal = "kitty";
|
||||||
modifier = "Mod4";
|
workspaceAutoBackAndForth = true;
|
||||||
gaps = {
|
# Startup {{{
|
||||||
inner = 15;
|
startup = [
|
||||||
outer = 0;
|
# Keyboard remapping
|
||||||
smartGaps = true;
|
{ command = "xhost +"; }
|
||||||
|
{ command = "xkeysnail ${../other/xkeysnail.py}"; always = true; }
|
||||||
|
{ command = "sleep 4 && setxkbmap -layout us -variant altgr-intl"; always = true; }
|
||||||
|
{ command = "feh --bg-scale ${../other/wallpaper.jpg}"; always = true; notification = false; }
|
||||||
|
{ command = "picom --experimental-backend"; }
|
||||||
|
];
|
||||||
|
# }}}
|
||||||
|
# Assigns {{{
|
||||||
|
assigns = {
|
||||||
|
"1" = [ { class = "discord"; } { class = "nheko"; } ];
|
||||||
|
"2" = [ { class = "librewolf"; } ];
|
||||||
};
|
};
|
||||||
|
# }}}
|
||||||
|
# Keyboard shortcuts {{{
|
||||||
|
modifier = "Mod4";
|
||||||
modes = {
|
modes = {
|
||||||
resize = with {
|
resize = with {
|
||||||
aaa = builtins.trace "foo" "bar";
|
# mod = builtins.break config.xsession.windowManager.i3.config.modifier;
|
||||||
mod = builtins.trace config 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}+h" = "resize shrink width 10 px or 10 ppt";
|
||||||
"${mod}+j" = "resize grow height 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}+k" = "resize shrink height 10 px or 10 ppt";
|
||||||
|
@ -54,8 +127,9 @@ in with lib; {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
keybindings = with {
|
keybindings = with {
|
||||||
mod = config.xsession.windowManager.i3.config.modifier;
|
#mod = config.xsession.windowManager.i3.config.modifier;
|
||||||
}; {
|
mod = "Mod4";
|
||||||
|
}; lib.mkOptionDefault {
|
||||||
# switch window focus
|
# switch window focus
|
||||||
"${mod}+h" = "focus left";
|
"${mod}+h" = "focus left";
|
||||||
"${mod}+j" = "focus down";
|
"${mod}+j" = "focus down";
|
||||||
|
@ -76,12 +150,113 @@ in with lib; {
|
||||||
# focus parents/children
|
# focus parents/children
|
||||||
"${mod}+Shift+a" = "focus parent";
|
"${mod}+Shift+a" = "focus parent";
|
||||||
"${mod}+c" = "focus child";
|
"${mod}+c" = "focus child";
|
||||||
# custom script shit
|
# screenshot
|
||||||
"${mod}+w" = "exec window-screenshot.sh";
|
"${mod}+w" = "exec window-screenshot.sh";
|
||||||
|
# rofi fuckery
|
||||||
|
"${mod}+d" = "exec --no-startup-id rofi -show drun";
|
||||||
|
"${mod}+space" = "exec --no-startup-id -show window";
|
||||||
|
"${mod}+i" = "exec --no-startup-id rofimoji -f alchemical_symbols 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 desktop-ctl.sh";
|
||||||
|
# rofi calculator, https://github.com/barbuk/menu-qalc
|
||||||
|
# "${mod}+m" = "exec --no-startup-id ="
|
||||||
|
|
||||||
|
# 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";
|
||||||
|
|
||||||
|
# macros
|
||||||
|
"${mod}+q" = "exec em-record.sh";
|
||||||
|
"${mod}+p" = "exec em-play.sh";
|
||||||
|
"${mod}+Shift+p" = "exec em-play-loop.sh";
|
||||||
|
};
|
||||||
|
# }}}
|
||||||
|
# Visuals {{{
|
||||||
|
fonts = {
|
||||||
|
names = [ "Montserrat" ];
|
||||||
|
style = "Regular";
|
||||||
|
size = 9.0;
|
||||||
|
};
|
||||||
|
gaps = {
|
||||||
|
inner = 15;
|
||||||
|
outer = 0;
|
||||||
|
smartGaps = true;
|
||||||
|
};
|
||||||
|
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;
|
||||||
|
};
|
||||||
|
# }}}
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
# }}}
|
||||||
|
# Compositing {{{
|
||||||
|
services.picom = mkIf config.jade.desktop.compositing {
|
||||||
|
enable = true;
|
||||||
|
experimentalBackends = true;
|
||||||
|
backend = "glx";
|
||||||
|
|
||||||
|
shadow = true;
|
||||||
|
shadowOffsets = [ 25 15 ];
|
||||||
|
shadowOpacity = 0.045;
|
||||||
|
shadowExclude = [
|
||||||
|
"class_g = 'Conky'"
|
||||||
|
"class_g ?= 'Notify-osd'"
|
||||||
|
"class_g = 'Cairo-clock'"
|
||||||
|
"_GTK_FRAME_EXTENTS@:c"
|
||||||
|
"class_g != 'Rofi'"
|
||||||
|
];
|
||||||
|
|
||||||
|
vSync = true;
|
||||||
|
opacityRules = [
|
||||||
|
"90:class_g = 'kitty'"
|
||||||
|
"80:class_g = 'Signal'"
|
||||||
|
"80:class_g = 'Rofi'"
|
||||||
|
"80:class_g = 'discord'"
|
||||||
|
"80:class_g = 'Mailspring'"
|
||||||
|
"85:class_g = 'nheko'"
|
||||||
|
"75:class_g = 'obsidian'"
|
||||||
|
];
|
||||||
|
settings = {
|
||||||
|
# blur
|
||||||
|
#"detect-client-opacity = true;"
|
||||||
|
#"blur-method = \"gaussian\""
|
||||||
|
#"blur-size = 30"
|
||||||
|
#"blur-deviation = 15"
|
||||||
|
#"blur-background-fixed = true"
|
||||||
|
"detect-client-opacity" = true;
|
||||||
|
"blur-method" = "gaussian";
|
||||||
|
"blur-size" = 30;
|
||||||
|
"blur-deviation" = 15;
|
||||||
|
"blur-background-fixed" = true;
|
||||||
|
|
||||||
|
# fading rofi
|
||||||
|
"fading" = true;
|
||||||
|
"fade-in-step" = 0.25;
|
||||||
|
"fade-out-step" = 0.2;
|
||||||
|
"fade-delta" = 20;
|
||||||
|
"fade-exclude" = [ "class_g != 'Rofi'" ];
|
||||||
|
# use damage information
|
||||||
|
"use-damage" = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
# }}}
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
10
modules/template.nix
Normal file
10
modules/template.nix
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let cfg = config.jade.NAME;
|
||||||
|
in with lib; {
|
||||||
|
options.jade.NAME = {
|
||||||
|
enable = mkEnableOption "Enable the module";
|
||||||
|
};
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
};
|
||||||
|
}
|
|
@ -11,6 +11,7 @@
|
||||||
|
|
||||||
jade = {
|
jade = {
|
||||||
desktop.enable = true;
|
desktop.enable = true;
|
||||||
|
desktop.compositing = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# monitor control
|
# monitor control
|
||||||
|
|
|
@ -6,11 +6,11 @@
|
||||||
"utils": "utils"
|
"utils": "utils"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1659878744,
|
"lastModified": 1660252108,
|
||||||
"narHash": "sha256-81a9Mx5pDMBGN4WnVhcQVkW5mXNTZOt8DZOSI8bVKpU=",
|
"narHash": "sha256-fpY8X+eJmClJyVnMQJ7bpsNgn/CxPE9+UkkJ0FRIKQ8=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "f5e9879e74e6202e2dbb3628fad2d20eac0d8be4",
|
"rev": "324fedcf9f1c475e2f522d03af029528e65969bc",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -37,11 +37,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1659327012,
|
"lastModified": 1660275424,
|
||||||
"narHash": "sha256-zpdsLCH+cdx/K89QtzADNwwEzU/iJ9YT8UCVp3veLWQ=",
|
"narHash": "sha256-OVjapp+VIt3a/qQm5oSwNuoDbvIRbMk8tbbzWJb2zVc=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "a54fb7fc4ce8a2973097851eabfdb068a19d2211",
|
"rev": "d977d658816cb84d3a38065846e3f2d7e96dccb2",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
BIN
other/wallpaper.jpg
Normal file
BIN
other/wallpaper.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 849 KiB |
148
other/xkeysnail.py
Normal file
148
other/xkeysnail.py
Normal file
|
@ -0,0 +1,148 @@
|
||||||
|
import re
|
||||||
|
from xkeysnail.transform import *
|
||||||
|
|
||||||
|
# define timeout for multipurpose_modmap
|
||||||
|
define_timeout(1)
|
||||||
|
|
||||||
|
# [Global modemap] Change modifier keys as in xmodmap
|
||||||
|
# define_modmap({
|
||||||
|
# Key.CAPSLOCK: Key.RIGHT_CTRL
|
||||||
|
# })
|
||||||
|
|
||||||
|
# [Conditional modmap] Change modifier keys in certain applications
|
||||||
|
define_conditional_modmap(lambda wm_class, device_name: device_name.startswith("Apple") | device_name.startswith("Susanne"), {
|
||||||
|
Key.Y: Key.Z,
|
||||||
|
Key.Z: Key.Y,
|
||||||
|
# Key.GRAVE: Key.BACKSLASH,
|
||||||
|
# Key.BACKSLASH: Key.GRAVE
|
||||||
|
})
|
||||||
|
|
||||||
|
# [Multipurpose modmap] Give a key two meanings. A normal key when pressed and
|
||||||
|
# released, and a modifier key when held down with another key. See Xcape,
|
||||||
|
# Carabiner and caps2esc for ideas and concept.
|
||||||
|
# To use this example, you can't remap capslock with define_modmap.
|
||||||
|
|
||||||
|
# [Conditional multipurpose modmap] Multipurpose modmap in certain conditions,
|
||||||
|
# such as for a particular device.
|
||||||
|
define_conditional_multipurpose_modmap(lambda wm_class, device_name: device_name.startswith("Apple") | device_name.startswith("Susanne"), {
|
||||||
|
# Enter is enter when pressed and released. Control when held down.
|
||||||
|
Key.ENTER: [Key.ENTER, Key.RIGHT_CTRL],
|
||||||
|
# Capslock is escape when pressed and released. Control when held down.
|
||||||
|
Key.CAPSLOCK: [Key.ESC, Key.RIGHT_CTRL],
|
||||||
|
})
|
||||||
|
|
||||||
|
define_keymap(re.compile("Firefox|Google-chrome|LibreWolf|Chromium"), {
|
||||||
|
K("C-M-k"): K("C-TAB"),
|
||||||
|
K("C-M-j"): K("C-Shift-TAB"),
|
||||||
|
}, "Firefox and Chrome")
|
||||||
|
|
||||||
|
#basic emacs
|
||||||
|
define_keymap(lambda wm_class: wm_class not in ("Emacs", "konsole", "cool-retro-term", "kitty", "jetbrains-webstorm", "jetbrains-clion", "jetbrains-pycharm", "jetbrains-dataspell", "jetbrains-idea", "Gimp-2.10", "obsidian", "gw2-64.exe"), {
|
||||||
|
# Cursor
|
||||||
|
K("C-b"): with_mark(K("left")),
|
||||||
|
K("C-f"): with_mark(K("right")),
|
||||||
|
K("C-p"): with_mark(K("up")),
|
||||||
|
K("C-n"): with_mark(K("down")),
|
||||||
|
K("C-h"): with_mark(K("backspace")),
|
||||||
|
# Forward/Backward word
|
||||||
|
K("M-b"): with_mark(K("C-left")),
|
||||||
|
K("M-f"): with_mark(K("C-right")),
|
||||||
|
# Beginning/End of line
|
||||||
|
K("C-a"): with_mark(K("home")),
|
||||||
|
K("C-e"): with_mark(K("end")),
|
||||||
|
# Escape
|
||||||
|
K("C-q"): escape_next_key,
|
||||||
|
# Delete
|
||||||
|
K("C-d"): [K("delete"), set_mark(False)],
|
||||||
|
K("M-d"): [K("C-delete"), set_mark(False)],
|
||||||
|
}, "Basic emacs keys etc")
|
||||||
|
|
||||||
|
|
||||||
|
define_keymap(lambda wm_class: wm_class not in ("discord", "jetbrains-webstorm", "jetbrains-clion", "jetbrains-pycharm", "jetbrains-dataspell", "jetbrains-idea", "nheko", "Signal", "gw2-64.exe"), {
|
||||||
|
# Kill line
|
||||||
|
K("C-k"): [K("Shift-end"), K("C-x"), set_mark(False)],
|
||||||
|
})
|
||||||
|
|
||||||
|
# other emacs like
|
||||||
|
define_keymap(lambda wm_class: wm_class not in ("Emacs", "URxvt", "konsole", "cool-retro-term", "discord", "jetbrains-webstorm", "jetbrains-clion", "jetbrains-pycharm", "jetbrains-dataspell", "jetbrains-idea", "Gimp-2.10", "obsidian", "nheko", "Signal"), {
|
||||||
|
# Beginning/End of file
|
||||||
|
K("M-Shift-comma"): with_mark(K("C-home")),
|
||||||
|
K("M-Shift-dot"): with_mark(K("C-end")),
|
||||||
|
}, "Emacs-like keys")
|
||||||
|
|
||||||
|
define_keymap(lambda wm_class: wm_class not in ("Emacs", "konsole", "cool-retro-term", "jetbrains-webstorm", "jetbrains-clion", "jetbrains-pycharm", "jetbrains-dataspell", "jetbrains-idea", "gw2-64.exe"), {
|
||||||
|
K("C-j"): K("F6")
|
||||||
|
})
|
||||||
|
|
||||||
|
define_keymap(re.compile("nheko"), {
|
||||||
|
K("M-j"): K("C-down"),
|
||||||
|
K("M-k"): K("C-up"),
|
||||||
|
})
|
||||||
|
|
||||||
|
define_keymap(re.compile("Signal"), {
|
||||||
|
K("C-k"): K("C-t"),
|
||||||
|
K("M-k"): K("M-up"),
|
||||||
|
K("M-j"): K("M-down"),
|
||||||
|
})
|
||||||
|
|
||||||
|
# discord mappings
|
||||||
|
define_keymap(re.compile("discord"), {# {{{
|
||||||
|
# Tabs
|
||||||
|
K("C-TAB"): K("C-page_down"),
|
||||||
|
K("C-Shift-TAB"): K("C-page_up"),
|
||||||
|
# Navigate servers
|
||||||
|
K("M-Shift-j"): K("C-M-down"),
|
||||||
|
K("M-Shift-k"): K("C-M-up"),
|
||||||
|
# Navigate channels
|
||||||
|
K("M-j"): K("M-down"),
|
||||||
|
K("M-k"): K("M-up"),
|
||||||
|
# Navigate history
|
||||||
|
K("C-M-j"): K("M-left"),
|
||||||
|
K("C-M-k"): K("M-right"),
|
||||||
|
# Navigate unread channels
|
||||||
|
K("C-M-p"): K("M-Shift-up"),
|
||||||
|
K("C-M-n"): K("M-Shift-down"),
|
||||||
|
# Search
|
||||||
|
K("M-f"): K("C-f"),
|
||||||
|
# toggle last server and dms
|
||||||
|
K("M-t"): K("C-M-right"),
|
||||||
|
# start drag and drop
|
||||||
|
K("M-Shift-d"): K("C-d"),
|
||||||
|
# Call controls
|
||||||
|
K("M-c"): {
|
||||||
|
# Mute
|
||||||
|
K("m"): K("C-Shift-m"),
|
||||||
|
# Deafen
|
||||||
|
K("d"): K("C-Shift-d"),
|
||||||
|
# accept call
|
||||||
|
K("a"): K("C-enter"),
|
||||||
|
# decline
|
||||||
|
K("q"): K("esc"),
|
||||||
|
# current call
|
||||||
|
K("c"): K("C-M-Shift-V"),
|
||||||
|
# cancel
|
||||||
|
K("C-g"): pass_through_key,
|
||||||
|
},
|
||||||
|
# Chat controls
|
||||||
|
K("M-l"): {
|
||||||
|
# Open pins popup
|
||||||
|
K("p"): K("C-p"),
|
||||||
|
# emoji picker
|
||||||
|
K("e"): K("C-e"),
|
||||||
|
# gif picker
|
||||||
|
K("g"): K("C-g"),
|
||||||
|
# sticker picker
|
||||||
|
K("s"): K("C-s"),
|
||||||
|
# upload file
|
||||||
|
K("u"): K("C-Shift-u"),
|
||||||
|
# inbox
|
||||||
|
K("i"): K("C-i"),
|
||||||
|
# new group
|
||||||
|
K("n"): K("C-Shift-t"),
|
||||||
|
# Oldest unread/newest message
|
||||||
|
K("C-p"): K("Shift-page_up"),
|
||||||
|
K("C-n"): K("Shift-page_down"),
|
||||||
|
# cancel
|
||||||
|
K("C-g"): pass_through_key,
|
||||||
|
}
|
||||||
|
})# }}}
|
Loading…
Reference in a new issue