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
|
module Defaults where
import XMonad
import XMonad.Layout.Spacing
import XMonad.Layout.Tabbed
import XMonad.Actions.GridSelect
import XMonad.Util.Loggers
import XMonad.Hooks.StatusBar
import XMonad.Hooks.StatusBar.PP
myBorder = "#120F23"
myBorder' = "#C44CF2"
myBorderWidth :: Dimension
myBorderWidth = 2
myFont = "xft:Sauce Code Pro:style=Regular:size=14"
myModMask = mod4Mask
myModMask' = mod1Mask
myModShiftMask = myModMask .|. shiftMask
myModShiftMask' = myModMask' .|. shiftMask
myLockscreen = "notify-send 'to be set up!' 'to be set up!'"
myColorPicker = "colorpicker --short --one-shot --preview | xsel -b"
myTerminal = "open_terminal"
myTerminal' = "WINIT_X11_SCALE_FACTOR=1.5 alacritty"
myLauncher = "dmenu_run"
volUp = "pamixer -i 5"
volDown = "pamixer -d 5"
volMute = "pamixer -t"
backlightUp = "brightnessctl s +5"
backlightDown = "brightnessctl s 5-"
wifiOn = "nmcli radio wifi on"
wifiOff :: String
wifiOff = "nmcli radio wifi off"
screenshot = "flameshot screen"
fullScreenshot = "flameshot full"
customScreenshot = "flameshot gui"
myBrowser = "librewolf"
myPrivateBrowser = "librewolf --private-window"
myBrowser' = "firefox"
myPrivateBrowser' = "firefox --private-window"
myTorrentClient = "qbittorrent"
myFileManager = "pcmanfm"
myFileManager' = "lf"
myTextEditor = "emacs"
myTextEditor' = "nvim"
-- workspaces
myExtraWorkspaces = [(xK_0, "十")]
myWorkspaces = ["一", "二", "三", "四", "五", "六", "七", "八", "九"] ++ map snd myExtraWorkspaces
-- screen gaps
sGap = 3
wGap = 4
myGap = spacingRaw True (Border sGap sGap sGap sGap) True (Border wGap wGap wGap wGap) True
-- myGap = spacingRaw False (Border sGap sGap sGap sGap) True (Border wGap wGap wGap wGap) True
myTabTheme = def {
fontName = myFont
, activeColor = "#755999"
, inactiveColor = "#282c35"
, activeBorderColor = "#755999"
, inactiveBorderColor = "#313846"
, activeTextColor = "#FFFFFF"
, inactiveTextColor = "#d0d0d0"
, decoHeight = 20
}
myGSColorizer :: Window -> Bool -> X (String, String)
myGSColorizer = colorRangeFromClassName
(0x28,0x2c,0x34) -- lowest inactive bg
(0x28,0x2c,0x34) -- highest inactive bg
-- (0xff,0xff,0xff) -- lowest inactive bg
-- (0xff,0xff,0xff) -- highest inactive bg
(0xc4,0x4c,0xf2) -- active bg
(0xff,0xff,0xff) -- inactive fg
(0xff,0xff,0xff) -- active fg
myGSConfig colorizer = (buildDefaultGSConfig myGSColorizer)
{ gs_cellheight = 36
, gs_cellwidth = 180
, gs_cellpadding = 6
, gs_originFractX = 0.5
, gs_originFractY = 0.5
, gs_font = myFont
}
myGridSelect = myGSConfig myGSColorizer
myLemonbarCmd = "lemon | lemonbar -g 1920x28+1920+0 -o -2 -f 'Source Han Sans JP Normal:size=12' -B '#e6100b13' -F '#9d00ff'"
myLemonbarPP = def {
ppCurrent = wrap "%{B#ff0aa3} %{F#FFFFFF}" " %{F-}%{B-}"
, ppVisible = wrap "%{B#28c78f} %{F#FFFFFF}" " %{F-}%{B-}"
, ppHidden = wrap "%{B#9b1bed} %{F#FFFFFF}" " %{F-}%{B-}"
, ppHiddenNoWindows = wrap " " " "
--, ppVisibleNoWindows = wrap "%{B#ffffff} %{F#9b1bed}" " %{F-}%{B-}"
, ppWsSep = ""
, ppSep = ""
, ppTitle = wrap " " "%{r}" . shorten 60
, ppOrder = \(ws:l:t:ex) -> [t]++[ws]
}
myLemonbarCmd' = "lemon | lemonbar -g 1920x20+0+0 -o 0 -f 'Source Han Sans JP Normal:size=9' -B '#e6100b13' -F '#9d00ff'"
myLemonbarPP' = myLemonbarPP
|