jdfadskfljfsfalkdsfjaklaaaaaaaaaaaaaaaaaaa
This commit is contained in:
parent
55b1c49913
commit
9833180135
7 changed files with 372 additions and 38 deletions
|
@ -2,6 +2,7 @@
|
|||
|
||||
let
|
||||
cfg = config.jade.desktop;
|
||||
# Screenshot scripts {{{
|
||||
window-screenshot = pkgs.writeShellScriptBin "window-screenshot.sh" ''
|
||||
unset x y w h
|
||||
eval $(xwininfo -id $(xdotool getactivewindow) |
|
||||
|
@ -12,19 +13,77 @@ let
|
|||
echo -n "''$x ''$y ''$w ''$h"
|
||||
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; {
|
||||
options.jade.desktop = {
|
||||
enable = mkEnableOption "Enable the i3 setup";
|
||||
compositing = mkEnableOption "Enable compositing via picom";
|
||||
};
|
||||
config = mkIf cfg.enable {
|
||||
home-manager.users.jade = { 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
|
||||
gruvterial-theme flameshot tesseract5 imagemagick xclip polybar kitty
|
||||
xkeysnail gtk-engine-murrine playerctl xmacro
|
||||
window-screenshot
|
||||
# custom scripts
|
||||
window-screenshot desktop-ctl em-record em-play em-play-loop
|
||||
];
|
||||
# i3 {{{
|
||||
xsession = {
|
||||
enable = true;
|
||||
windowManager.i3 = {
|
||||
|
@ -32,17 +91,31 @@ in with lib; {
|
|||
package = pkgs.i3-gaps;
|
||||
config = {
|
||||
terminal = "kitty";
|
||||
modifier = "Mod4";
|
||||
gaps = {
|
||||
inner = 15;
|
||||
outer = 0;
|
||||
smartGaps = true;
|
||||
workspaceAutoBackAndForth = true;
|
||||
# Startup {{{
|
||||
startup = [
|
||||
# Keyboard remapping
|
||||
{ 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 = {
|
||||
resize = with {
|
||||
aaa = builtins.trace "foo" "bar";
|
||||
mod = builtins.trace config config.xsession.windowManager.i3.config.modifier;
|
||||
# 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";
|
||||
|
@ -54,8 +127,9 @@ in with lib; {
|
|||
};
|
||||
};
|
||||
keybindings = with {
|
||||
mod = config.xsession.windowManager.i3.config.modifier;
|
||||
}; {
|
||||
#mod = config.xsession.windowManager.i3.config.modifier;
|
||||
mod = "Mod4";
|
||||
}; lib.mkOptionDefault {
|
||||
# switch window focus
|
||||
"${mod}+h" = "focus left";
|
||||
"${mod}+j" = "focus down";
|
||||
|
@ -76,12 +150,113 @@ in with lib; {
|
|||
# focus parents/children
|
||||
"${mod}+Shift+a" = "focus parent";
|
||||
"${mod}+c" = "focus child";
|
||||
# custom script shit
|
||||
# screenshot
|
||||
"${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 {
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue