Add macbook rules

This commit is contained in:
2020-07-19 08:11:39 +09:00
parent 05c150d45f
commit 8286a58cd6
12 changed files with 573 additions and 28 deletions

1
linux-macbook/Xresources Normal file
View File

@@ -0,0 +1 @@
Xft.dpi: 192

BIN
linux-macbook/dconf/user Normal file

Binary file not shown.

View File

@@ -0,0 +1,15 @@
GTK_IM_MODULE DEFAULT=fcitx
QT_IM_MODULE DEFAULT=fcitx
XMODIFIERS DEFAULT=\@im=fcitx
GTK_THEME DEFAULT=Numix:dark
GTK2_RC_FILES DEFAULT=/usr/share/themes/Numix/gtk-2.0/gtkrc
BROWSER DEFAULT=google-chrome-stable
QT_STYLE_OVERRIDE DEFAULT=GTK+
QT_QPA_PLATFORMTHEME DEFAULT=gtk2
GDK_SCALE DEFAULT=2
GDK_DPI_SCALE DEFAULT=0.5
QT_AUTO_SCREEN_SCALE_FACTOR DEFAULT=1

View File

@@ -0,0 +1,202 @@
;==========================================================
;
;
; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗
; ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗
; ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝
; ██╔═══╝ ██║ ██║██║ ╚██╔╝ ██╔══██╗██╔══██║██╔══██╗
; ██║ ╚██████╔╝███████╗██║ ██████╔╝██║ ██║██║ ██║
; ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝
;
;
; To learn more about how to configure Polybar
; go to https://github.com/polybar/polybar
;
; The README contains a lot of information
;
;==========================================================
[colors]
;background = ${xrdb:color0:#222}
background = #77222222
background-alt = #444
;foreground = ${xrdb:color7:#222}
foreground = #dfdfdf
foreground-alt = #555
primary = #ffb52a
secondary = #e60053
alert = #bd2c40
[bar/mybar]
;monitor = ${env:MONITOR:HDMI-1}
dpi = 192
width = 100%
height = 54
offset-x = 0%
offset-y = 0%
radius = 0.0
fixed-center = false
background = ${colors.background}
foreground = ${colors.foreground}
line-size = 3
line-color = #f00
border-size = 0
border-color = #00000000
padding-left = 0
padding-right = 0
module-margin-left = 1
module-margin-right = 2
font-0 = NanumBarunGothic:pixelsize=10;1
font-1 = unifont:fontformat=truetype:size=8:antialias=false;0
font-2 = siji:pixelsize=10;1
modules-left = bspwm
modules-center = xwindow
modules-right = pulseaudio wlan eth date
tray-position = right
tray-padding = 2
;tray-detached = true
;tray-offset-x = -10
;tray-background = #0063ff
;wm-restack = bspwm
;wm-restack = i3
;override-redirect = true
;scroll-up = bspwm-desknext
;scroll-down = bspwm-deskprev
;scroll-up = i3wm-wsnext
;scroll-down = i3wm-wsprev
cursor-click = pointer
cursor-scroll = ns-resize
[module/xwindow]
type = internal/xwindow
label = %title:0:100:...%
[module/bspwm]
type = internal/bspwm
label-focused = %index%
label-focused-background = ${colors.background-alt}
label-focused-underline= ${colors.primary}
label-focused-padding = 2
label-occupied = %index%
label-occupied-padding = 2
label-urgent = %index%!
label-urgent-background = ${colors.alert}
label-urgent-padding = 2
label-empty = %index%
label-empty-foreground = ${colors.foreground-alt}
label-empty-padding = 2
; Separator in between workspaces
; label-separator = |
[module/wlan]
type = internal/network
interface = wlp2s0
interval = 3.0
format-connected = <ramp-signal> <label-connected>
format-connected-underline = #9f78e1
label-connected = %essid%
format-disconnected =
;format-disconnected = <label-disconnected>
;format-disconnected-underline = ${self.format-connected-underline}
;label-disconnected = %ifname% disconnected
;label-disconnected-foreground = ${colors.foreground-alt}
ramp-signal-0 = 
ramp-signal-1 = 
ramp-signal-2 = 
ramp-signal-3 = 
ramp-signal-4 = 
ramp-signal-foreground = ${colors.foreground-alt}
[module/eth]
type = internal/network
interface = enp3s0
interval = 3.0
format-connected-underline = #55aa55
format-connected-prefix = " "
format-connected-prefix-foreground = ${colors.foreground-alt}
label-connected = %local_ip%
format-disconnected =
;format-disconnected = <label-disconnected>
;format-disconnected-underline = ${self.format-connected-underline}
;label-disconnected = %ifname% disconnected
;label-disconnected-foreground = ${colors.foreground-alt}
[module/date]
type = internal/date
interval = 5
date =
date-alt = " %Y-%m-%d"
time = %H:%M
time-alt = %H:%M:%S
format-prefix = 
format-prefix-foreground = ${colors.foreground-alt}
format-underline = #0a6cf5
label = %date% %time%
[module/pulseaudio]
type = internal/pulseaudio
format-volume = <label-volume> <bar-volume>
label-volume = VOL %percentage%%
label-volume-foreground = ${root.foreground}
label-muted = 🔇 muted
label-muted-foreground = #666
bar-volume-width = 10
bar-volume-foreground-0 = #55aa55
bar-volume-foreground-1 = #55aa55
bar-volume-foreground-2 = #55aa55
bar-volume-foreground-3 = #55aa55
bar-volume-foreground-4 = #55aa55
bar-volume-foreground-5 = #f5a70a
bar-volume-foreground-6 = #ff5555
bar-volume-gradient = false
bar-volume-indicator = |
bar-volume-indicator-font = 2
bar-volume-fill = ─
bar-volume-fill-font = 2
bar-volume-empty = ─
bar-volume-empty-font = 2
bar-volume-empty-foreground = ${colors.foreground-alt}
[settings]
screenchange-reload = true
;compositing-background = xor
;compositing-background = screen
;compositing-foreground = source
;compositing-border = over
;pseudo-transparency = false
[global/wm]
margin-top = 5
margin-bottom = 5
; vim:ft=dosini

View File

@@ -0,0 +1,9 @@
configuration {
font: "TerminessTTF Nerd Font 14";
show-icons: true;
icon-theme: "Numix-Circle";
combi-modi: "window,drun,ssh";
theme: "numix";
lines: 5;
dpi: 192;
}

View File

@@ -0,0 +1,144 @@
/**
* ROFI Color theme
* User: JT (adpated from lb by Qball)
* Copyright: Dave Davenport
*/
* {
selected-normal-foreground: @foreground;
foreground: #FFFFFF;
normal-foreground: @foreground;
alternate-normal-background: rgba ( 255, 255, 255, 7 % );
red: rgba ( 220, 50, 47, 100 % );
selected-urgent-foreground: rgba ( 51, 51, 51, 100 % );
blue: rgba ( 38, 139, 210, 100 % );
urgent-foreground: rgba ( 255, 153, 153, 100 % );
alternate-urgent-background: rgba ( 255, 255, 255, 7 % );
active-foreground: @bordercolor;
lightbg: rgba ( 238, 232, 213, 100 % );
selected-active-foreground: @foreground;
alternate-active-background: rgba ( 255, 255, 255, 7 % );
background: rgba ( 21, 21, 21, 40 % );
bordercolor: rgba ( 235, 86, 77, 100 % );
alternate-normal-foreground: @foreground;
normal-background: rgba ( 0, 0, 0, 0 % );
lightfg: rgba ( 88, 104, 117, 100 % );
selected-normal-background: @bordercolor;
border-color: @bordercolor;
spacing: 2;
separatorcolor: @bordercolor;
urgent-background: rgba ( 0, 0, 0, 0 % );
selected-urgent-background: rgba ( 255, 153, 153, 100 % );
alternate-urgent-foreground: @urgent-foreground;
background-color: rgba ( 0, 0, 0, 0 % );
alternate-active-foreground: @active-foreground;
active-background: rgba ( 0, 0, 0, 0 % );
selected-active-background: @bordercolor;
}
#window {
background-color: @background;
border: 1;
border-radius: 10;
padding: 5;
}
#mainbox {
border: 0;
padding: 0;
}
#message {
border: 1px dash 0px 0px ;
border-color: @separatorcolor;
padding: 1px ;
}
#textbox {
text-color: @foreground;
}
#listview {
fixed-height: 0;
border: 2px solid 0px 0px ;
border-color: @separatorcolor;
spacing: 2px ;
scrollbar: true;
padding: 2px 0px 0px ;
}
#element {
border: 0;
padding: 10px 1px;
}
#element.normal.normal {
background-color: @normal-background;
text-color: @normal-foreground;
}
#element.normal.urgent {
background-color: @urgent-background;
text-color: @urgent-foreground;
}
#element.normal.active {
background-color: @active-background;
text-color: @active-foreground;
}
#element.selected.normal {
background-color: @selected-normal-background;
text-color: @selected-normal-foreground;
}
#element.selected.urgent {
background-color: @selected-urgent-background;
text-color: @selected-urgent-foreground;
}
#element.selected.active {
background-color: @selected-active-background;
text-color: @selected-active-foreground;
}
#element.alternate.normal {
background-color: @alternate-normal-background;
text-color: @alternate-normal-foreground;
}
#element.alternate.urgent {
background-color: @alternate-urgent-background;
text-color: @alternate-urgent-foreground;
}
#element.alternate.active {
background-color: @alternate-active-background;
text-color: @alternate-active-foreground;
}
#scrollbar {
width: 4px ;
border: 0;
handle-width: 8px ;
padding: 0;
handle-color: @bordercolor;
}
#sidebar {
border: 2px dash 0px 0px ;
border-color: @separatorcolor;
}
#button.selected {
background-color: @selected-normal-background;
text-color: @selected-normal-foreground;
}
#inputbar {
spacing: 0;
text-color: @normal-foreground;
padding: 1px ;
}
#case-indicator {
spacing: 0;
text-color: @normal-foreground;
}
#entry {
spacing: 0;
text-color: @normal-foreground;
}
#prompt {
spacing: 0;
text-color: @normal-foreground;
}
#inputbar {
children: [ prompt,textbox-prompt-colon,entry,case-indicator ];
}
#textbox-prompt-colon {
expand: false;
str: ":";
margin: 0px 0.3em 0em 0em ;
text-color: @normal-foreground;
}

149
linux-macbook/sxhkd/sxhkdrc Normal file
View File

@@ -0,0 +1,149 @@
#
# wm independent hotkeys
#
# terminal emulator
super + Return
alacritty
# program launcher
super + @space
rofi -show combi
# make sxhkd reload its configuration files:
super + Escape
pkill -USR1 -x sxhkd
# screen capture
super + ctrl + shift + {3,4}
maim -u { ~/Pictures/screenshot.png ,-s | xclip -selection clipboard -t image/png }
#
# bspwm hotkeys
#
# quit/restart bspwm
super + alt + {q,r}
bspc {quit,wm -r}
# close and kill
super + {_,shift + }w
bspc node -{c,k}
# alternate between the tiled and monocle layout
super + m
bspc desktop -l next
# send the newest marked node to the newest preselected node
super + y
bspc node newest.marked.local -n newest.!automatic.local
# swap the current node and the biggest node
super + g
bspc node -s biggest
#
# state/flags
#
# set the window state
super + {t,shift + t, f,shift + f}
bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
super + s
bspc node -g sticky
super + shift + p
bspc node --state \~pseudo_tiled
#
# focus/swap
#
# focus the node in the given direction
super + {_,shift + }{h,j,k,l}
bspc node -{f,s} {west,south,north,east}
# focus the node for the given path jump
# super + {p,b,comma,period}
# bspc node -f @{parent,brother,first,second}
# focus the next/previous node in the current desktop
super + {_,shift + }c
bspc node -f {next,prev}.local
# focus the next/previous desktop in the current monitor
super + bracket{left,right}
bspc desktop -f {prev,next}.local
# focus the last node/desktop
super + {grave,Tab}
bspc {node,desktop} -f last
# focus the older or newer node in the focus history
super + {o,i}
bspc wm -h off; \
bspc node {older,newer} -f; \
bspc wm -h on
# focus or send to the given desktop
super + {_,shift + }{1-9,0}
bspc {desktop -f,node -d} '^{1-9,10}'
#
# preselect
#
# preselect the direction
super + ctrl + {h,j,k,l}
bspc node -p {west,south,north,east}
# preselect the ratio
super + ctrl + {1-9}
bspc node -o 0.{1-9}
# cancel the preselection for the focused node
super + ctrl + space
bspc node -p cancel
# cancel the preselection for the focused desktop
super + ctrl + shift + space
bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel
#
# move/resize
#
# expand a window by moving one of its side outward
super + alt + {h,j,k,l}
bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
# contract a window by moving one of its side inward
super + alt + shift + {h,j,k,l}
bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}
# move a floating window
super + {Left,Down,Up,Right}
bspc node -v {-20 0,0 20,0 -20,20 0}
# toggle pip mode
super + p
bspc node -g sticky; \
bspc node --state \~floating; \
xdotool getactivewindow windowsize 640 360 windowmove $(expr 1920 - 640 - 45) $(expr 1080 - 360 - 30)
XF86AudioMute
pactl set-sink-mute @DEFAULT_SINK@ toggle
XF86AudioLowerVolume
pactl set-sink-volume @DEFAULT_SINK@ -5%
XF86AudioRaiseVolume
pactl set-sink-volume @DEFAULT_SINK@ +5%
XF86MonBrightnessUp
xbacklight -ctrl gmux_backlight -inc 5
XF86MonBrightnessDown
xbacklight -ctrl gmux_backlight -dec 5

View File

@@ -78,5 +78,5 @@
"editor.formatOnSave": true, "editor.formatOnSave": true,
"vim.enableNeovim": true, "vim.enableNeovim": true,
"vim.useCtrlKeys": false, "vim.useCtrlKeys": false,
"editor.fontSize": 16 "editor.fontSize": 14
} }

View File

@@ -43,6 +43,7 @@ fcitx5 &
dunst & dunst &
sxhkd & sxhkd &
dex -a dex -a
libinput-gestures-setup restart
xinput set-prop 'Logitech G102 LIGHTSYNC Gaming Mouse' 'libinput Natural Scrolling Enabled' 1 xinput set-prop 'Logitech G102 LIGHTSYNC Gaming Mouse' 'libinput Natural Scrolling Enabled' 1
xinput set-prop 'Logitech G102 LIGHTSYNC Gaming Mouse' 'libinput Accel Speed' -0.5 xinput set-prop 'Logitech G102 LIGHTSYNC Gaming Mouse' 'libinput Accel Speed' -0.5

View File

@@ -1,7 +1,13 @@
import { dot, DotOption } from "./scripts/dot.ts"; import { dot, DotOption } from "./scripts/dot.ts";
const common: DotOption = {
link: {
gitconfig: ".gitconfig",
},
};
const linux: DotOption = { const linux: DotOption = {
hostname: ["MBP", "office2"], hostname: ["office2"],
install: [ install: [
"sudo pacman -S git", "sudo pacman -S git",
`bash -c "cd && git clone https://aur.archlinux.org/yay.git && cd yay && makepkg -si && cd .. && rm -rf yay"`, `bash -c "cd && git clone https://aur.archlinux.org/yay.git && cd yay && makepkg -si && cd .. && rm -rf yay"`,
@@ -16,28 +22,43 @@ const linux: DotOption = {
fcitx5 fcitx5-qt fcitx5-gtk fcitx5-hangul fcitx5-anthy fcitx5 fcitx5-qt fcitx5-gtk fcitx5-hangul fcitx5-anthy
kcm-fcitx5 numix-gtk-theme-git numix-circle-icon-theme-git`, kcm-fcitx5 numix-gtk-theme-git numix-circle-icon-theme-git`,
], ],
link: [ link: {
["linux/alacritty", ".config/alacritty"], ...common.link,
["linux/bin/ufetch", ".local/bin/ufetch"], "linux/alacritty": ".config/alacritty",
["linux/bspwm", ".config/bspwm"], "linux/bin/ufetch": ".local/bin/ufetch",
["linux/Code/User/settings.json", ".config/Code/User/settings.json"], "linux/bspwm": ".config/bspwm",
["linux/dunst", ".config/dunst"], "linux/Code/User/settings.json": ".config/Code/User/settings.json",
["linux/omz", ".config/omz"], "linux/dunst": ".config/dunst",
["linux/picom", ".config/picom"], "linux/omz": ".config/omz",
["linux/polybar", ".config/polybar"], "linux/picom": ".config/picom",
["linux/rofi", ".config/rofi"], "linux/polybar": ".config/polybar",
["linux/sxhkd", ".config/sxhkd"], "linux/rofi": ".config/rofi",
["linux/fcitx5", ".config/fcitx5"], "linux/sxhkd": ".config/sxhkd",
["linux/dconf", ".config/dconf"], "linux/fcitx5": ".config/fcitx5",
["linux/bakamplayer.ini", ".config/bakamplayer.ini"], "linux/dconf": ".config/dconf",
["linux/xinitrc", ".xinitrc"], "linux/bakamplayer.ini": ".config/bakamplayer.ini",
["linux/pam_environment", ".pam_environment"], "linux/xinitrc": ".xinitrc",
["linux/zshrc", ".zshrc"], "linux/pam_environment": ".pam_environment",
], "linux/zshrc": ".zshrc",
},
};
const linuxMacbook: DotOption = {
...linux,
hostname: "MBP",
link: {
...linux.link,
"linux-macbook/dconf": ".config/dconf",
"linux-macbook/polybar": ".config/polybar",
"linux-macbook/rofi": ".config/rofi",
"linux-macbook/sxhkd": ".config/sxhkd",
"linux-macbook/pam_environment": ".pam_environment",
"linux-macbook/Xresources": ".Xresources",
},
}; };
try { try {
await dot(Deno.args, [linux]); await dot(Deno.args, [linux, linuxMacbook]);
} catch (err) { } catch (err) {
console.log(err.message); console.log(err.message);
} }

View File

@@ -9,7 +9,7 @@ import {
export interface DotOption { export interface DotOption {
hostname?: string | string[]; hostname?: string | string[];
install?: string[]; install?: string[];
link?: [string, string][]; link?: Record<string, string>;
} }
export async function dot(args: string[], options: DotOption[]) { export async function dot(args: string[], options: DotOption[]) {
@@ -30,17 +30,20 @@ export async function dot(args: string[], options: DotOption[]) {
} }
} }
} else if (flags._[0] === "link" && target.link) { } else if (flags._[0] === "link" && target.link) {
for (const link of target.link) { for (const from in target.link) {
try { try {
const path = `${Deno.env.get("HOME")}/${link[1]}`; const path = `${Deno.env.get("HOME")}/${target.link[from]}`;
if (existsSync(path)) { if (existsSync(path)) {
console.log(`${path} does exist. move to ${path}.bak`); let i = 0;
moveSync(path, `${path}.bak`); let mvPath = `${path}.bak`;
while (existsSync(mvPath)) mvPath = `${path}.${++i}.bak`;
console.log(`${path} does exist. move to ${mvPath}`);
moveSync(path, mvPath);
} }
await ensureSymlink(Deno.realPathSync(link[0]), path); await ensureSymlink(Deno.realPathSync(from), path);
console.log(`Link: ${path}`); console.log(`Link: ${path}`);
} catch (err) { } catch (err) {
throw Error(`${err.message}\nerror link: ${JSON.stringify(link)}`); throw Error(`${err.message}\nerror link: ${JSON.stringify(from)}`);
} }
} }
} }