about summary refs log tree commit diff
path: root/hosts/luna/home.nix
blob: bcac39c316d6d231ad3211bedb8a4165be42edab (plain) (blame)
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
{ config, lib, pkgs, inputs, user, hostname, secrets, ... }:
let
  dotfiles = ../../dotfiles;
in
{
  home.packages = with pkgs; [
    jetbrains.idea-community
    xorg.xmodmap
    calibre
    qtcreator
    kcc
  ] ++
  (with pkgs.custom; [
    adl
    trackma
    kindlegen
    manga-cli
    mov-cli
  ]);

  programs.firefox.profiles.default.settings = {
    "media.ffmpeg.vaapi.enabled" = true; #Hardware acceleration
  };

  xdg.configFile = {
    "dwmbar/config".text = ''
      #!/bin/sh

      # What modules, in what order
      MODULES="weather wifi internet volume ram_perc cpuload cputemp battery date time"

      # Modules that require an active internet connection
      ONLINE_MODULES="weather internet"

      # Delay between showing the status bar
      DELAY="0.05"

      # Where the custom modules are stored
      CUSTOM_DIR="/home/$USER/.config/dwmbar/modules/custom/"

      # Separator between modules
      SEPARATOR=" | "

      # Padding at the end and beggining of the status bar
      RIGHT_PADDING=" "
      LEFT_PADDING=" "
    '';

    "sxhkd/sxhkdrc".text =
      builtins.readFile (dotfiles + "/sxhkd/dwm") +
      builtins.readFile (dotfiles + "/sxhkd/base") +
      ''
      
        #enter and leave game mode
        alt + shift + F11: ctrl + shift + F11 
          pkill -ALRM sxhkd

        # Make sxhkd reload its configuration files
        alt + Escape
          pkill -USR1 -x sxhkd

        #Screenshot
        alt + grave
          bash ~/.scripts/screenshot

        Print
          bash ~/.scripts/screenshot

        XF86Search
        	dmenu_run -i

        #TODO: should be XF86FullScreen (idk why it doesnt work with nixos xorg)
        F4
          dwmc togglefullscreen

        XF86PowerOff
        	bash ~/.scripts/exit

        ##################
        ##### VOLUME #####
        ##################

        # Raise volume
        XF86AudioRaiseVolume
        	pactl set-sink-volume 0 +5%

        # Lower volume
        XF86AudioLowerVolume
        	pactl set-sink-volume 0 -5%

        # Mute audio
        # note: mute always sets audio off (toggle)
        XF86AudioMute
        	pactl set-sink-mute 0 toggle


        ######################
        ##### BRIGHTNESS #####
        ######################

        XF86MonBrightnessUp
          light -A 5

        XF86MonBrightnessDown
          light -U 5

        ######################
        ######## MEDIA #######
        ######################

        XF86AudioPlay
          playerctl play

        XF86AudioPause
          playerctl pause

        XF86AudioNext
          playerctl next

        XF86AudioPrev
          playerctl previous

        ######################
        ######## OTHER #######
        ######################

        @XF86Back
            xte 'keydown Alt_L' 'key Left' 'keyup Alt_L'

        @XF86Forward
            xte 'keydown Alt_L' 'key Right' 'keyup Alt_L'

        @XF86Reload
            xte 'keydown Control_L' 'key r' 'keyup Control_L'
      '';

    "mpv/mpv.conf".text = ''
      ytdl-format=bestvideo[height<=?720][fps<=?60][vcodec!=?vp9]+bestaudio/best
      hwdec
    '';
  };

  home.file.".Xmodmap".text = ''
    ! bind F1 and F2 to back and forward
    ! Use Shift+F1 or Shift+F2 to use F1 and F2 actions, e.g. rename a file
    keycode  67 = XF86Back F1 F1 F1 F1 F1 XF86Switch_VT_1
    keycode  68 = XF86Forward F2 F2 F2 F2 F2 XF86Switch_VT_2

    ! bind F3 to refresh
    keycode  69 = XF86Refresh F3 F3 F3 F3 F3 XF86Switch_VT_3

    ! TODO: bind F4 to fullscreen (when supported nixos xorg)
    ! keycode  70 = XF86FullScreen F4 F4 F4 F4 F4 XF86Switch_VT_4

    ! bind F5 to print
    keycode  71 = Print F5 F5 F5 F5 F5 XF86Switch_VT_5

    ! bind F6, F7 to brightness down and up
    keycode  72 = XF86MonBrightnessDown F6 F6 F6 F6 F6 XF86Switch_VT_6
    keycode  73 = XF86MonBrightnessUp F7 F7 F7 F7 F7 XF86Switch_VT_7

    ! bind F8, F9, F10 to mute, voldown, volup
    keycode  74 = XF86AudioMute F8 F8 F8 F8 F8 XF86Switch_VT_8
    keycode  75 = XF86AudioLowerVolume F9 F9 F9 F9 F9 XF86Switch_VT_9
    keycode  76 = XF86AudioRaiseVolume F10 F10 F10 F10 F10 XF86Switch_VT_10

    ! bind Super+L to search
    keycode  133 = XF86Search
  '';

}