2024-02-06 10:27:49 -05:00
{ scripts , extra , config , lib , pkgs , terminal , . . . } @ inputs :
2024-01-04 21:21:04 -05:00
2024-01-15 14:11:14 -05:00
let
2024-01-15 14:26:21 -05:00
dynscreenshot = pkgs . writeShellScript " d y n s c r e e n s h o t " ( builtins . readFile " ${ scripts } / d y n s c r e e n s h o t . s h " ) ;
changebrightness = pkgs . writeShellScript " c h a n g e b r i g h t n e s s " ( builtins . readFile " ${ scripts } / c h a n g e b r i g h t n e s s . s h " ) ;
2024-01-15 14:11:14 -05:00
mod = config . wayland . windowManager . sway . config . modifier ;
2024-01-29 13:48:01 -05:00
dmenuCommand = builtins . readFile " ${ scripts } / d m e n u . s h " ;
shutdownMenu = pkgs . writeShellScript " s h u t d o w n m e n u " ( builtins . readFile " ${ scripts } / s h u t d o w n m e n u . s h " ) ;
2024-03-19 23:07:41 -04:00
backgroundImage = " ${ extra } / k u w a i t b o a t . j p g " ;
2024-01-15 14:11:14 -05:00
in {
2024-01-04 21:21:04 -05:00
enable = true ;
2024-01-05 16:38:09 -05:00
config = rec {
2024-02-06 09:32:42 -05:00
terminal = " ${ pkgs . lib . getExe inputs . terminal } " ;
2024-01-04 21:21:04 -05:00
modifier = " M o d 4 " ;
2024-01-05 13:02:09 -05:00
fonts = {
2024-01-05 22:01:44 -05:00
names = [ " R e d H a t D i s p l a y " ] ;
2024-01-05 13:02:09 -05:00
style = " R e g u l a r " ;
size = 12 .0 ;
} ;
2024-04-13 23:18:20 -04:00
input = {
" t y p e : t o u c h p a d " = {
2024-01-29 13:48:01 -05:00
natural_scroll = " d i s a b l e d " ;
2024-04-13 23:18:20 -04:00
dwt = " d i s a b l e d " ;
click_method = " c l i c k f i n g e r " ;
scroll_factor = " 0 . 5 " ;
} ;
" * " = {
xkb_layout = " c a , c a " ;
xkb_variant = " , e n g " ;
} ;
2024-01-29 13:48:01 -05:00
} ;
2024-01-05 16:38:09 -05:00
bars = let config = config ; in [ {
2024-02-07 13:00:22 -05:00
command = " ${ pkgs . lib . getExe pkgs . waybar } " ;
2024-01-05 16:38:09 -05:00
position = " t o p " ;
inherit fonts ;
} ] ;
2024-01-04 21:21:04 -05:00
window = {
border = 2 ;
titlebar = true ;
} ;
2024-01-15 14:11:14 -05:00
keybindings = let screenshotPath = " P i c t u r e s / S c r e e n s h o t s / s c r e e n s h o t ` d a t e + % Y % m % d % H % M % S ` . p n g " ; in lib . mkOptionDefault ( { # Screenshot keybinds
2024-01-30 15:21:59 -05:00
" P r i n t " = " e x e c g r i m - | w l - c o p y & & w l - p a s t e > ${ screenshotPath } " ; # Take screenshot of whole screen, save it, and copy it to clipboard
" S h i f t + P r i n t " = " e x e c s w a y m s g - t g e t _ t r e e | j q - r ' . . | s e l e c t ( . f o c u s e d ? ) | . r e c t | \" \\ ( . x ) , \\ ( . y ) \\ ( . w i d t h ) x \\ ( . h e i g h t ) \" ' | g r i m - g - | w l - c o p y & & w l - p a s t e > ${ screenshotPath } " ; # Take screenshot of current window, save it, and copy it to clipboard
2024-03-20 23:55:56 -04:00
" C t r l + P r i n t " = " e x e c b a s h ${ dynscreenshot } ${ screenshotPath } " ; # Take screenshot of selection, save it, and copy it to clipboard
2024-01-15 14:11:14 -05:00
} // { # Function Media Keys
XF86MonBrightnessUp = " e x e c b a s h ${ changebrightness } 1 " ;
XF86MonBrightnessDown = " e x e c b a s h ${ changebrightness } - 1 " ;
2024-02-06 16:39:03 -05:00
XF86AudioMute = " e x e c w p c t l s e t - m u t e @ D E F A U L T _ A U D I O _ S I N K @ t o g g l e " ;
" ${ mod } + X F 8 6 A u d i o M u t e " = " e x e c w p c t l s e t - m u t e @ D E F A U L T _ A U D I O _ S O U R C E @ t o g g l e " ;
2024-01-15 14:11:14 -05:00
XF86AudioRaiseVolume = " e x e c w p c t l s e t - v o l u m e @ D E F A U L T _ A U D I O _ S I N K @ 0 . 0 5 + " ;
XF86AudioLowerVolume = " e x e c w p c t l s e t - v o l u m e @ D E F A U L T _ A U D I O _ S I N K @ 0 . 0 5 - " ;
" ${ mod } + X F 8 6 A u d i o R a i s e V o l u m e " = " e x e c w p c t l s e t - v o l u m e @ D E F A U L T _ A U D I O _ S O U R C E @ 0 . 0 5 + " ;
" ${ mod } + X F 8 6 A u d i o L o w e r V o l u m e " = " e x e c w p c t l s e t - v o l u m e @ D E F A U L T _ A U D I O _ S O U R C E @ 0 . 0 5 - " ;
2024-01-30 15:21:59 -05:00
" ${ mod } + S h i f t + e " = null ;
2024-03-19 23:07:41 -04:00
XF86AudioMedia = " d u n s t c t l s e t - p a u s e d t o g g l e ; d u n s t i f y - a ' d u n s t _ m u t e _ k e y ' - u l o w - h s t r i n g : x - d u n s t - s t a c k - t a g : d u n s t _ m u t e _ k e y ' N o t i f i c a t i o n s m u t e t o g g l e d ' " ;
2024-01-29 13:48:01 -05:00
XF86PowerOff = " e x e c D M E N U _ C O M M A N D = ' ${ dmenuCommand } ' b a s h ${ shutdownMenu } " ;
} // {
2024-04-13 23:18:20 -04:00
" ${ mod } + s p a c e " = " i n p u t \" * \" x k b _ s w i t c h _ l a y o u t n e x t " ;
2024-02-06 09:32:42 -05:00
} // {
2024-01-15 14:11:14 -05:00
} ) ;
2024-02-06 09:32:42 -05:00
menu = " j 4 - d m e n u - d e s k t o p - - n o - g e n e r i c - - t e r m = ${ pkgs . lib . getExe inputs . terminal } - - d m e n u = ' ${ dmenuCommand } ' " ;
2024-01-05 13:02:09 -05:00
focus . followMouse = false ;
2024-01-04 21:21:04 -05:00
} ;
2024-01-05 13:02:09 -05:00
extraConfig =
''
output ' eDP-1' scale 1 .50
'' + # F r a c t i o n a l s c a l i n g t o 1 . 5 0
''
2024-04-13 23:18:20 -04:00
exec gammastep-indicator
'' + # g a m m a s t e p - i n d i c a t o r e n a b l e s r e d s h i f t
2024-01-30 15:21:59 -05:00
''
exec dunst
'' + # E n a b l e n o t i f i c a t i o n s
2024-02-06 09:32:42 -05:00
''
bindgesture swipe:4:up focus parent
bindgesture swipe:4:left workspace prev
bindgesture swipe:4:right workspace next
bindgesture swipe:3:up focus up
bindgesture swipe:3:down focus down
bindgesture swipe:3:left focus left
bindgesture swipe:3:right focus right
2024-02-06 10:27:49 -05:00
'' + # M u l t i - t o u c h t o u c h p a d g e s t u r e s
''
exec swaybg - i $ { backgroundImage }
'' + # B a c k g r o u n d i m a g e
2024-03-12 13:30:56 -04:00
''
focus_on_window_activation focus
'' + # F o c u s o n w i n d o w a c t i v a t i o n l o l
2024-01-29 13:48:01 -05:00
" " ;
2024-01-05 13:02:09 -05:00
}