314 lines
13 KiB
Nix
314 lines
13 KiB
Nix
{ pkgs, ... }: {
|
|
imports = [
|
|
./firefox.nix
|
|
./polybar.nix
|
|
./gnome-terminal.nix
|
|
./monitor_configs.nix
|
|
];
|
|
|
|
home.file = {
|
|
".config/IJHack/QtPass.conf".source = ./assets/QtPass.conf;
|
|
|
|
"fixbluetooth" = {
|
|
executable = true;
|
|
source = ./assets/resetbluetooth.sh;
|
|
};
|
|
};
|
|
|
|
# Dell Precision Nonsense
|
|
home.packages = with pkgs; [
|
|
alsa-utils
|
|
];
|
|
home.file."precision/fixmicrophone" = {
|
|
executable = true;
|
|
text = ''
|
|
# https://github.com/NixOS/nixpkgs/issues/294170
|
|
sudo ln -s /run/current-system/sw/bin/rm /bin
|
|
sudo ln -s /run/current-system/sw/bin/mkdir /bin
|
|
|
|
# https://discourse.nixos.org/t/dell-xps-13-9320-microphone-not-working/40932/3
|
|
sudo alsactl init
|
|
systemctl --user restart pipewire
|
|
'';
|
|
};
|
|
|
|
programs.browserpass.enable = true;
|
|
programs.chromium = {
|
|
enable = true;
|
|
extensions = [
|
|
{ id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; } # UBlock Origin
|
|
{ id = "dbepggeogbaibhgnhhndojpepiihcmeb"; } # Vimium
|
|
{ id = "naepdomgkenhinolocfifgehidddafch"; } # Browserpass
|
|
];
|
|
};
|
|
|
|
# picom --vsync --experimental-backend
|
|
xsession.windowManager.i3 = {
|
|
enable = true;
|
|
config.bars = [];
|
|
extraConfig = ''
|
|
################################################################################
|
|
set $mod Mod4
|
|
|
|
# Font for window titles.
|
|
font pango:monospace 8
|
|
|
|
# Bar
|
|
exec_always --no-startup-id systemctl --user restart polybar
|
|
|
|
# Background
|
|
#exec_always --no-startup-id feh --bg-scale $HOME/Archive/Multimedia/Pictures/Firewatch\ Wallpapers/3\ -\ NAQ0dTR.png
|
|
#exec_always --no-startup-id feh --bg-scale $HOME/Archive/Multimedia/Pictures/Other\ Wallpapers/EMwduGkh_o.png
|
|
#exec_always --no-startup-id feh --bg-scale $HOME/Archive/Multimedia/Pictures/Other\ Wallpapers/1345403996113.jpg
|
|
#exec_always --no-startup-id feh --bg-scale $HOME/tmp/backgrounds/dcrhoj0-e922ac66-5611-43af-a35e-e5068ab642c3.png
|
|
#exec_always --no-startup-id feh --bg-scale $HOME/Archive/Multimedia/Pictures/Wallpapers/ae4xtKY.jpg
|
|
|
|
################################################################################
|
|
# Hardware Control
|
|
|
|
# Desk Lights
|
|
bindsym $mod+Shift+d exec curl -X POST https://homeassistant.mlaga97.space/api/webhook/--caDGWR8KXLTM3yZ6Y01XPe6
|
|
bindsym $mod+Shift+w exec curl -X POST https://homeassistant.mlaga97.space/api/webhook/-tbHkUPb8aLVcFaOQcXbBdIJb
|
|
bindsym $mod+Shift+o exec curl -X POST https://homeassistant.mlaga97.space/api/webhook/-fmYa59UtZaMXythyEsda_ulo
|
|
|
|
# Network Manager
|
|
exec nm-applet
|
|
|
|
# Allow gnome apps to prompt for password
|
|
exec --no-startup-id /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1 &
|
|
|
|
# Various gnome-settings-daemon helpers
|
|
exec --no-startup-id /usr/libexec/gsd-backlight-helper &
|
|
#exec --no-startup-id /usr/libexec/gsd-usb-protection &
|
|
#exec --no-startup-id /usr/libexec/gsd-sound &
|
|
#exec --no-startup-id /usr/libexec/gsd-disk-utility-notify &
|
|
#exec --no-startup-id /usr/libexec/gsd-power &
|
|
#exec --no-startup-id /usr/libexec/gsd-screensaver-proxy &
|
|
#exec --no-startup-id /usr/libexec/gsd-wacom &
|
|
#exec --no-startup-id /usr/libexec/gsd-xsettings &
|
|
#exec --no-startup-id /usr/libexec/gsd-printer &
|
|
#exec --no-startup-id /usr/libexec/gsd-sharing &
|
|
#exec --no-startup-id /usr/libexec/gsd-color &
|
|
#exec --no-startup-id /usr/libexec/gsd-wwan &
|
|
#exec --no-startup-id /usr/libexec/gsd-datetime &
|
|
#exec --no-startup-id /usr/libexec/gsd-wacom-oled-helper &
|
|
#exec --no-startup-id /usr/libexec/gsd-keyboard &
|
|
#exec --no-startup-id /usr/libexec/gsd-smartcard &
|
|
#exec --no-startup-id /usr/libexec/gsd-a11y-settings &
|
|
#exec --no-startup-id /usr/libexec/gsd-media-keys &
|
|
#exec --no-startup-id /usr/libexec/gsd-rfkill &
|
|
#exec --no-startup-id /usr/libexec/gsd-housekeeping &
|
|
#exec --no-startup-id /usr/libexec/gsd-print-notifications &
|
|
|
|
# Screen Brightness Controls
|
|
bindsym XF86MonBrightnessUp exec --no-startup-id brightnessctl set +5%
|
|
bindsym XF86MonBrightnessDown exec --no-startup-id brightnessctl set 5%-
|
|
|
|
# Monitor Layout Controls
|
|
bindsym $mod+Control+d exec arandr
|
|
|
|
# Pulse Audio Controls
|
|
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 1 +5% #increase sound volume
|
|
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 1 -5% #decrease sound volume
|
|
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 1 toggle # mute sound
|
|
|
|
# Sound Device Control
|
|
bindsym $mod+Control+a exec pavucontrol
|
|
bindsym $mod+Control+b exec blueman-manager
|
|
|
|
# Fast calculator
|
|
bindsym $mod+c exec rofi -theme solarized -font "ubuntu mono 16" -show calc -modi "calc:qalc +u8 -nocurrencies"
|
|
|
|
################################################################################
|
|
# Session Management
|
|
|
|
# Reload Config
|
|
bindsym $mod+Shift+c reload
|
|
|
|
# Restart i3 In Place
|
|
bindsym $mod+Shift+r restart
|
|
|
|
# Lock Screen
|
|
#exec --no-startup-id xidlehook --not-when-fullscreen --not-when-audio --timer normal 30 ~/Applications/lock_then_off.sh
|
|
#bindsym $mod+Control+Mod1+Shift+l exec ~/Applications/lock_then_off.sh
|
|
bindsym $mod+Control+Mod1+Shift+l exec i3lock
|
|
|
|
# Logout
|
|
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'"
|
|
|
|
# Shutdown
|
|
bindsym $mod+Ctrl+Mod1+Shift+p exec "i3-nagbar -t warning -m 'Really Shutdown?' -b 'Yes' 'systemctl poweroff -i'"
|
|
|
|
################################################################################
|
|
|
|
# toggle fullscreen
|
|
bindsym $mod+f fullscreen toggle
|
|
|
|
# Picture-in-Picture
|
|
bindsym $mod+p exec "i3-msg 'floating toggle; sticky toggle; resize shrink width 10000px; resize grow width 200px; resize shrink height 10000px; resize grow height 250px; move position 6950px 1750px;'"
|
|
|
|
# change container layout (stacked, tabbed, toggle split)
|
|
bindsym $mod+s layout stacking
|
|
bindsym $mod+t layout tabbed
|
|
bindsym $mod+e layout toggle split
|
|
|
|
# toggle floating
|
|
bindsym $mod+Shift+space floating toggle
|
|
|
|
# change focus between tiling / floating windows
|
|
bindsym $mod+space focus mode_toggle
|
|
|
|
# focus the parent container
|
|
bindsym $mod+a focus parent
|
|
|
|
# Use Mouse+$mod to drag floating windows to their wanted position
|
|
floating_modifier $mod
|
|
|
|
# resize mode
|
|
mode "resize" {
|
|
#bindsym j resize shrink width 10 px or 10 ppt
|
|
#bindsym k resize grow height 10 px or 10 ppt
|
|
#bindsym l resize shrink height 10 px or 10 ppt
|
|
#bindsym semicolon resize grow width 10 px or 10 ppt
|
|
bindsym h resize shrink width 10 px or 10 ppt
|
|
bindsym j resize grow height 10 px or 10 ppt
|
|
bindsym k resize shrink height 10 px or 10 ppt
|
|
bindsym l resize grow width 10 px or 10 ppt
|
|
|
|
bindsym Return mode "default"
|
|
bindsym Escape mode "default"
|
|
bindsym Control+[ mode "default"
|
|
}
|
|
|
|
bindsym $mod+r mode "resize"
|
|
|
|
################################################################################
|
|
|
|
# Terminal
|
|
bindsym $mod+Return exec i3-sensible-terminal
|
|
|
|
# Exit Current Window
|
|
bindsym $mod+Shift+q kill
|
|
|
|
# Run a Program
|
|
#bindsym $mod+d exec dmenu_run
|
|
bindsym $mod+d exec rofi -combi-modi run#window#ssh -theme solarized -font "ubuntu mono 10" -show combi
|
|
|
|
# Cycle Through Windows
|
|
#bindsym $mod+j focus left
|
|
#bindsym $mod+k focus down
|
|
#bindsym $mod+l focus up
|
|
#bindsym $mod+semicolon focus right
|
|
bindsym $mod+h focus left
|
|
bindsym $mod+j focus down
|
|
bindsym $mod+k focus up
|
|
bindsym $mod+l focus right
|
|
|
|
# Move Current Window
|
|
#bindsym $mod+Shift+j move left
|
|
#bindsym $mod+Shift+k move down
|
|
#bindsym $mod+Shift+l move up
|
|
#bindsym $mod+Shift+semicolon move right
|
|
bindsym $mod+Shift+h move left
|
|
bindsym $mod+Shift+j move down
|
|
bindsym $mod+Shift+k move up
|
|
bindsym $mod+Shift+l move right
|
|
|
|
# Horizontal Split
|
|
# bindsym $mod+h split h
|
|
bindsym $mod+b split h
|
|
|
|
# Vertical Split
|
|
bindsym $mod+v split v
|
|
|
|
# switch to workspace
|
|
bindsym $mod+1 workspace 1
|
|
bindsym $mod+2 workspace 2
|
|
bindsym $mod+3 workspace 3
|
|
bindsym $mod+4 workspace 4
|
|
bindsym $mod+5 workspace 5
|
|
bindsym $mod+6 workspace 6
|
|
bindsym $mod+7 workspace 7
|
|
bindsym $mod+8 workspace 8
|
|
bindsym $mod+9 workspace 9
|
|
bindsym $mod+0 workspace 10
|
|
bindsym $mod+Ctrl+1 workspace 11
|
|
bindsym $mod+Ctrl+2 workspace 12
|
|
bindsym $mod+Ctrl+3 workspace 13
|
|
bindsym $mod+Ctrl+4 workspace 14
|
|
bindsym $mod+Ctrl+5 workspace 15
|
|
bindsym $mod+Ctrl+6 workspace 16
|
|
bindsym $mod+Ctrl+7 workspace 17
|
|
bindsym $mod+Ctrl+8 workspace 18
|
|
bindsym $mod+Ctrl+9 workspace 19
|
|
bindsym $mod+Ctrl+0 workspace 20
|
|
bindsym $mod+mod1+Ctrl+1 workspace 21
|
|
bindsym $mod+mod1+Ctrl+2 workspace 22
|
|
bindsym $mod+mod1+Ctrl+3 workspace 23
|
|
bindsym $mod+mod1+Ctrl+4 workspace 24
|
|
bindsym $mod+mod1+Ctrl+5 workspace 25
|
|
bindsym $mod+mod1+Ctrl+6 workspace 26
|
|
bindsym $mod+mod1+Ctrl+7 workspace 27
|
|
bindsym $mod+mod1+Ctrl+8 workspace 28
|
|
bindsym $mod+mod1+Ctrl+9 workspace 29
|
|
bindsym $mod+mod1+Ctrl+0 workspace 30
|
|
|
|
# move focused container to workspace
|
|
bindsym $mod+Shift+1 move container to workspace 1
|
|
bindsym $mod+Shift+2 move container to workspace 2
|
|
bindsym $mod+Shift+3 move container to workspace 3
|
|
bindsym $mod+Shift+4 move container to workspace 4
|
|
bindsym $mod+Shift+5 move container to workspace 5
|
|
bindsym $mod+Shift+6 move container to workspace 6
|
|
bindsym $mod+Shift+7 move container to workspace 7
|
|
bindsym $mod+Shift+8 move container to workspace 8
|
|
bindsym $mod+Shift+9 move container to workspace 9
|
|
bindsym $mod+Shift+0 move container to workspace 10
|
|
bindsym $mod+Ctrl+Shift+1 move container to workspace 11
|
|
bindsym $mod+Ctrl+Shift+2 move container to workspace 12
|
|
bindsym $mod+Ctrl+Shift+3 move container to workspace 13
|
|
bindsym $mod+Ctrl+Shift+4 move container to workspace 14
|
|
bindsym $mod+Ctrl+Shift+5 move container to workspace 15
|
|
bindsym $mod+Ctrl+Shift+6 move container to workspace 16
|
|
bindsym $mod+Ctrl+Shift+7 move container to workspace 17
|
|
bindsym $mod+Ctrl+Shift+8 move container to workspace 18
|
|
bindsym $mod+Ctrl+Shift+9 move container to workspace 19
|
|
bindsym $mod+Ctrl+Shift+0 move container to workspace 20
|
|
bindsym $mod+mod1+Ctrl+Shift+1 move container to workspace 21
|
|
bindsym $mod+mod1+Ctrl+Shift+2 move container to workspace 22
|
|
bindsym $mod+mod1+Ctrl+Shift+3 move container to workspace 23
|
|
bindsym $mod+mod1+Ctrl+Shift+4 move container to workspace 24
|
|
bindsym $mod+mod1+Ctrl+Shift+5 move container to workspace 25
|
|
bindsym $mod+mod1+Ctrl+Shift+6 move container to workspace 26
|
|
bindsym $mod+mod1+Ctrl+Shift+7 move container to workspace 27
|
|
bindsym $mod+mod1+Ctrl+Shift+8 move container to workspace 28
|
|
bindsym $mod+mod1+Ctrl+Shift+9 move container to workspace 29
|
|
bindsym $mod+mod1+Ctrl+Shift+0 move container to workspace 30
|
|
|
|
################################################################################
|
|
# Other
|
|
|
|
# Workspace Movement
|
|
#bindsym $mod+Control+Shift+j move workspace to output left
|
|
#bindsym $mod+Control+Shift+semicolon move workspace to output right
|
|
bindsym $mod+Control+Shift+h move workspace to output left
|
|
bindsym $mod+Control+Shift+l move workspace to output right
|
|
|
|
# Cycle Through Workspaces
|
|
#bindsym $mod+Ctrl+j focus workspace prevonoutput
|
|
#bindsym $mod+Ctrl+semicolon focus workspace nextonoutput
|
|
bindsym $mod+Ctrl+h focus workspace prevonoutput
|
|
bindsym $mod+Ctrl+l focus workspace nextonoutput
|
|
|
|
# Custom Workspace Names
|
|
bindsym $mod+Control+r exec i3-input -F 'rename workspace to "%s"' -P 'Rename workspace to: '
|
|
bindsym $mod+Control+s exec i3-input -F 'workspace "%s"' -P 'Switch to workspace: '
|
|
bindsym $mod+Control+Shift+s exec i3-input -F 'move container to workspace "%s"' -P 'Move to workspace: '
|
|
|
|
# Move Windows through cycle
|
|
bindsym $mod+Ctrl+Shift+Left move container to workspace prevonoutput
|
|
bindsym $mod+Ctrl+Shift+Right move container to workspace nextonoutput
|
|
'';
|
|
};
|
|
}
|