home manager!
also a bunch of other stuff
This commit is contained in:
parent
beee908e58
commit
bb70530786
17 changed files with 1073 additions and 15 deletions
234
cfg/winter/rin/i3.nix
Normal file
234
cfg/winter/rin/i3.nix
Normal file
|
|
@ -0,0 +1,234 @@
|
|||
{ config, pkgs, ... }:
|
||||
let
|
||||
super = "Mod4";
|
||||
alt = "Mod1";
|
||||
|
||||
mkGapsMode = mode: {
|
||||
"plus" = "gaps ${mode} current plus 5";
|
||||
"minus" = "gaps ${mode} current minus 5";
|
||||
"0" = "gaps ${mode} current set 0";
|
||||
"Shift+plus" = "gaps ${mode} all plus 5";
|
||||
"Shift+minus" = "gaps ${mode} all minus 5";
|
||||
"Shift+0" = "gaps ${mode} all set 0";
|
||||
"Return" = "mode gapsMode";
|
||||
"Escape" = "mode default";
|
||||
};
|
||||
genGapsModes = modes: builtins.listToAttrs (builtins.map (mode: {
|
||||
name = mode;
|
||||
value = mkGapsMode mode;
|
||||
}) modes);
|
||||
genColors = states: builtins.listToAttrs (builtins.map (state: {
|
||||
name = state;
|
||||
value = {
|
||||
background = "#2f343f";
|
||||
border = "#2f343f";
|
||||
childBorder = "#2f343f";
|
||||
indicator = "#2f343f";
|
||||
text = "#d8dee8";
|
||||
};
|
||||
}) states);
|
||||
|
||||
in rec {
|
||||
home.file.".xinitrc".source = ./scripts/xinitrc;
|
||||
xsession.enable = true;
|
||||
xsession.windowManager.i3 = {
|
||||
enable = true;
|
||||
package = pkgs.i3-gaps;
|
||||
|
||||
config = {
|
||||
startup = [
|
||||
{
|
||||
# HACK: what is this lol
|
||||
command = "systemctl --user restart polybar";
|
||||
always = true;
|
||||
notification = false;
|
||||
}
|
||||
{
|
||||
command = "feh --bg-fill /home/rin/Pictures/Wallpapers/current";
|
||||
always = true;
|
||||
notification = false;
|
||||
}
|
||||
];
|
||||
|
||||
fonts = {
|
||||
names = [
|
||||
"Open Sans"
|
||||
"HanaMinA"
|
||||
"HanaMinB"
|
||||
];
|
||||
style = "Regular";
|
||||
size = 8.0;
|
||||
};
|
||||
|
||||
floating = {
|
||||
titlebar = false;
|
||||
modifier = super;
|
||||
};
|
||||
|
||||
window.border = 0;
|
||||
bars = [];
|
||||
|
||||
gaps = {
|
||||
smartGaps = true;
|
||||
inner = 5;
|
||||
};
|
||||
|
||||
colors = genColors [
|
||||
"focused"
|
||||
"focusedInactive"
|
||||
"unfocused"
|
||||
"urgent"
|
||||
"placeholder"
|
||||
] // { background = "#2f343f"; };
|
||||
#colors.focused.background = "#1d242f";
|
||||
|
||||
modifier = super;
|
||||
keybindings = {
|
||||
# Rofi (App launcher)
|
||||
"${super}+Return" = "exec rofi -lines 12 -padding 18 -width 60 -location 0 -show drun -sidebar-mode -columns 3 -font 'Noto Sans 8'";
|
||||
|
||||
# Printscreen
|
||||
"Print" = "exec maim -us | tee ~/Pictures/Screenshots/$(date +%s)c.png | xclip -selection clipboard -t image/png";
|
||||
"Shift+Print" = "exec maim -u | tee ~/Pictures/Screenshots/$(date +%s).png | xclip -selection clipboard -t image/png";
|
||||
|
||||
# Quick-kill picom
|
||||
"${super}+p" = "exec systemctl --user stop picom";
|
||||
"${super}+Shift+p" = "exec systemctl --user restart picom";
|
||||
|
||||
# Volume
|
||||
"XF86AudioRaiseVolume" = "exec pactl set-sink-volume 0 +5%";
|
||||
"XF86AudioLowerVolume" = "exec pactl set-sink-volume 0 -5%";
|
||||
"XF86AudioMute" = "exec pactl set-sink-volume 0 toggle";
|
||||
|
||||
# Brightness
|
||||
"XF86MonBrightnessUp" = "exec light -A 10";
|
||||
"XF86MonBrightnessDown" = "exec light -U 10";
|
||||
"Shift+XF86MonBrightnessUp" = "exec light -A 1";
|
||||
"Shift+XF86MonBrightnessDown" = "exec light -U 1";
|
||||
"Ctrl+XF86MonBrightnessUp" = "exec xgamma -gamma 1.3";
|
||||
"Ctrl+XF86MonBrightnessDown" = "exec xgamma -gamma 1";
|
||||
|
||||
# Music control
|
||||
# "XF86AudioNext" = "exec mpc next";
|
||||
# "XF86AudioPrev" = "exec mpc prev";
|
||||
# "XF86AudioPlay" = "exec mpc toggle";
|
||||
# "XF86AudioStop" = "exec mpc stop";
|
||||
|
||||
# Kill focused window
|
||||
"${super}+c" = "kill";
|
||||
"${alt}+F4" = "kill";
|
||||
|
||||
# Change focus
|
||||
"${super}+Left" = "focus left";
|
||||
"${super}+Down" = "focus down";
|
||||
"${super}+Up" = "focus up";
|
||||
"${super}+Right" = "focus right";
|
||||
"${super}+h" = "focus left";
|
||||
"${super}+j" = "focus down";
|
||||
"${super}+k" = "focus up";
|
||||
"${super}+l" = "focus right";
|
||||
|
||||
# Move focused window
|
||||
"${super}+Shift+Left" = "move left";
|
||||
"${super}+Shift+Down" = "move down";
|
||||
"${super}+Shift+Up" = "move up";
|
||||
"${super}+Shift+Right" = "move right";
|
||||
"${super}+Shift+h" = "move left";
|
||||
"${super}+Shift+j" = "move down";
|
||||
"${super}+Shift+k" = "move up";
|
||||
"${super}+Shift+l" = "move right";
|
||||
|
||||
# Change split modes
|
||||
"${super}+b" = "split h";
|
||||
"${super}+v" = "split v";
|
||||
"${super}+s" = "layout toggle split";
|
||||
"${super}+w" = "layout tabbed";
|
||||
|
||||
# Enter fullscreen
|
||||
"${super}+f" = "fullscreen toggle";
|
||||
|
||||
# Toggle floating windows
|
||||
"${super}+space" = "floating toggle";
|
||||
|
||||
# Restart / Exit i3
|
||||
"${super}+Shift+r" = "restart";
|
||||
"${super}+q" = "exec i3-nagbar -m 'Exit?' -b 'Yes' 'i3-msg exit'";
|
||||
|
||||
# Modes
|
||||
"${super}+r" = "mode Resize";
|
||||
"${super}+Shift+g" = "mode Gaps";
|
||||
|
||||
# Workspace switching
|
||||
"${super}+1" = "workspace number $ws1";
|
||||
"${super}+2" = "workspace number $ws2";
|
||||
"${super}+3" = "workspace number $ws3";
|
||||
"${super}+4" = "workspace number $ws4";
|
||||
"${super}+5" = "workspace number $ws5";
|
||||
"${super}+6" = "workspace number $ws6";
|
||||
"${super}+7" = "workspace number $ws7";
|
||||
"${super}+8" = "workspace number $ws8";
|
||||
"${super}+9" = "workspace number $ws9";
|
||||
"${super}+0" = "workspace number $ws10";
|
||||
"${alt}+Control+Left" = "workspace prev";
|
||||
"${alt}+Control+Right" = "workspace next";
|
||||
"${alt}+Control+h" = "workspace prev";
|
||||
"${alt}+Control+l" = "workspace next";
|
||||
|
||||
"${super}+Shift+1" = "move container to workspace number $ws1";
|
||||
"${super}+Shift+2" = "move container to workspace number $ws2";
|
||||
"${super}+Shift+3" = "move container to workspace number $ws3";
|
||||
"${super}+Shift+4" = "move container to workspace number $ws4";
|
||||
"${super}+Shift+5" = "move container to workspace number $ws5";
|
||||
"${super}+Shift+6" = "move container to workspace number $ws6";
|
||||
"${super}+Shift+7" = "move container to workspace number $ws7";
|
||||
"${super}+Shift+8" = "move container to workspace number $ws8";
|
||||
"${super}+Shift+9" = "move container to workspace number $ws9";
|
||||
"${super}+Shift+0" = "move container to workspace number $ws10";
|
||||
};
|
||||
|
||||
modes = {
|
||||
"Resize" = {
|
||||
"Left" = "resize shrink width 5 px or 5 ppt";
|
||||
"Down" = "resize grow height 5 px or 5 ppt";
|
||||
"Up" = "resize shrink height 5 px or 5 ppt";
|
||||
"Right" = "resize grow width 5 px or 5 ppt";
|
||||
"Return" = "mode default";
|
||||
};
|
||||
"Gaps" = {
|
||||
"o" = "mode Outer";
|
||||
"i" = "mode Inner";
|
||||
"h" = "mode Horizontal";
|
||||
"v" = "mode Vertical";
|
||||
"t" = "mode Top";
|
||||
"r" = "mode Right";
|
||||
"b" = "mode Bottom";
|
||||
"l" = "mode Left";
|
||||
"Return" = "mode Gaps";
|
||||
"Escape" = "mode default";
|
||||
};
|
||||
} // genGapsModes [
|
||||
"Outer"
|
||||
"Inner"
|
||||
"Horizontal"
|
||||
"Vertical"
|
||||
"Top"
|
||||
"Right"
|
||||
"Bottom"
|
||||
"Left"
|
||||
];
|
||||
};
|
||||
|
||||
extraConfig = ''
|
||||
set $ws1 "1:code"
|
||||
set $ws2 "2:web"
|
||||
set $ws3 "3:discord"
|
||||
set $ws4 "4:game"
|
||||
set $ws5 "5"
|
||||
set $ws6 "6"
|
||||
set $ws7 "7"
|
||||
set $ws8 "8:steam"
|
||||
set $ws9 "9:spotify"
|
||||
set $ws10 "10:term"
|
||||
'';
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue