310 lines
		
	
	
	
		
			11 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			310 lines
		
	
	
	
		
			11 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| { lib, pkgs, ... }: {
 | |
|   imports = [
 | |
|     ./programs/kitty.nix
 | |
|     ./programs/firefox.nix
 | |
|     ./programs/polybar.nix
 | |
|     ./programs/chromium.nix
 | |
|     ./programs/gnome-terminal.nix
 | |
|   ];
 | |
| 
 | |
|   services.blueman-applet.enable = true;
 | |
|   services.network-manager-applet.enable = true;
 | |
| 
 | |
|   services.flameshot = {
 | |
|     enable = true;
 | |
|     settings.General.showStartupLaunchMessage = false;
 | |
|   };
 | |
| 
 | |
|   services.xidlehook = {
 | |
|     enable = true;
 | |
|     not-when-audio = true;
 | |
|     #not-when-fullscreen = true;
 | |
|     timers = [
 | |
|       {
 | |
|         delay = 300;
 | |
|         command = "dm-tool lock";
 | |
|       }
 | |
|     ];
 | |
|   };
 | |
| 
 | |
|   programs.mpv.enable = true;
 | |
|   programs.firefox.enable = true;
 | |
|   programs.chromium.enable = true;
 | |
|   programs.browserpass.enable = true;
 | |
| 
 | |
|   programs.rofi = {
 | |
|     enable = true;
 | |
|     theme = "solarized";
 | |
|     font = "ubuntu mono 10";
 | |
|   };
 | |
| 
 | |
|   home.packages = with pkgs; [
 | |
|     # TODO: Figure these ones out
 | |
|     #dunst
 | |
|     #xidlehook?
 | |
| 
 | |
|     feh
 | |
|     vlc
 | |
|     loupe
 | |
|     arandr
 | |
|     gparted
 | |
|     brightnessctl
 | |
|     pavucontrol
 | |
|     pinentry-qt
 | |
|     gnome-terminal
 | |
|     xorg.xkill
 | |
|     nemo-with-extensions
 | |
| 
 | |
|     # Other Apps
 | |
|     librecad
 | |
|     libreoffice
 | |
|     virt-manager
 | |
|     sublime-merge
 | |
|     openscad-unstable
 | |
|   ];
 | |
| 
 | |
|   home.file = {
 | |
|     ".config/IJHack/QtPass.conf".source = ./assets/QtPass.conf;
 | |
|   };
 | |
| 
 | |
|   # picom --vsync --experimental-backend
 | |
|   xsession.windowManager.i3 = {
 | |
|     enable = true;
 | |
| 
 | |
|     config = {
 | |
|       bars = [];
 | |
|       keybindings = lib.mkForce {};
 | |
|     };
 | |
| 
 | |
|     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
 | |
|       
 | |
|       # 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 -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
 | |
| 
 | |
|       # Reload Monitors
 | |
|       bindsym $mod+Control+Mod1+Shift+x exec xrandr --auto --rate 30
 | |
|       bindsym $mod+Control+Mod1+Shift+a exec autorandr --cycle
 | |
| 
 | |
|       # 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 dm-tool lock
 | |
|       
 | |
|       # 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 kitty
 | |
|       
 | |
|       # Exit Current Window
 | |
|       bindsym $mod+Shift+q kill
 | |
|       
 | |
|       # Run a Program
 | |
|       bindsym $mod+d exec rofi -show combi -combi-modi run#window#ssh
 | |
|       
 | |
|       # Cycle Through Windows
 | |
|       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
 | |
|       
 | |
|       # 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
 | |
|       
 | |
|       ################################################################################
 | |
|       # 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+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: '
 | |
|       
 | |
|       # Move Windows through cycle
 | |
|       bindsym $mod+Ctrl+Shift+Left move container to workspace prevonoutput
 | |
|       bindsym $mod+Ctrl+Shift+Right move container to workspace nextonoutput
 | |
|     '';
 | |
|   };
 | |
| }
 |