blob: daa3f04d78b424f001d30527ab295fb0cf959ed5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
{ pkgs, config, lib, ... }:
let
vars = import ./variables.nix;
scripts = import ./scripts.nix {inherit pkgs; };
mod = "Mod4";
in
{
xsession.windowManager = {
i3 = {
enable = true;
config = {
modifier = mod;
bars = [ ];
window = {
titlebar = false;
border = 3;
};
startup = [
{ command = "sh -c 'feh --bg-fill ${vars.wallpaper}'"; }
];
keybindings = lib.mkOptionDefault {
"${mod}+Return" = "exec ${pkgs.alacritty}/bin/alacritty"; # Lanuch alacritty as a terminal
"${mod}+m" = "exec ${pkgs.dmenu}/bin/dmenu"; # Launch dmenu (app launcher)
"${mod}+q" = "kill"; # Close an app (kill the process)
"${mod}+Ctrl+l" = "exec lock-screen"; # Lock screen
"${mod}+Shift+r" = "restart";
"${mod}+Ctrl+Shift+e" = "exec sh -c 'i3-msg exit'";
# === FOCUS === #
# Vim bindings
"${mod}+h" = "focus left";
"${mod}+j" = "focus down";
"${mod}+k" = "focus up";
"${mod}+l" = "focus right";
# Arrow keys
"${mod}+Left" = "focus left";
"${mod}+Down" = "focus down";
"${mod}+Up" = "focus up";
"${mod}+Right" = "focus right";
# === MOVE === #
# Vim bindings
"${mod}+Shift+h" = "move left";
"${mod}+Shift+j" = "move down";
"${mod}+Shift+k" = "move up";
"${mod}+Shift+l" = "move right";
# Arrow keys
"${mod}+Shift+Left" = "focus left";
"${mod}+Shift+Down" = "focus down";
"${mod}+Shift+Up" = "focus up";
"${mod}+Shift+Right" = "focus right";
# === F-KEYS === #
# Volume
"XF86AudioRaiseVolume" = "exec wpctl set-volume @DEFAULT_AUDIO_SINK@ +5%"; # Raise volume by 5%
"XF86AudioLowerVolume" = "exec wpctl set-volume @DEFAULT_AUDIO_SINK@ -5%"; # Lower volume by 5%
"XF86AudioMute" = "exec wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; # Toggle volume (audio) on/off
"XF86AudioMicMute" = "exec wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; # Toggle mic on/off
# Brigtness
"XF86MonBrightnessUp" = "exec brightnessctl set +5%"; # Raise brightness by 5%
"XF86MonBrightnessDown" = "exec brightnessctl set -5%"; # Lower brightness by 5%
# NOTE: Yes, the brightness can go to 0%, thus turning the screen off.
};
};
};
};
home.packages = with pkgs; [
dmenu # App launcher
i3lock # Lock screen
scripts.lock-screen # Actual lock screen functionality
imagemagick # Handle wallpaper resizing for i3-lock
polybar # Status bar
alacritty # Terminal Emulator
feh # Wallpaper utility
];
}
|