diff --git a/alacritty.yml b/.config/alacritty/alacritty.yml similarity index 99% rename from alacritty.yml rename to .config/alacritty/alacritty.yml index f58bef7..32ba554 100644 --- a/alacritty.yml +++ b/.config/alacritty/alacritty.yml @@ -22,6 +22,7 @@ env: # check the local terminfo database and use `alacritty` if it is # available, otherwise `xterm-256color` is used. TERM: xterm-256color + WINIT_HIDPI_FACTOR: "1.0" window: # Window dimensions (changes require restart) diff --git a/.config/i3/config b/.config/i3/config new file mode 100644 index 0000000..c173aeb --- /dev/null +++ b/.config/i3/config @@ -0,0 +1,199 @@ +set $mod Mod4 +set $amod Mod1 + +# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the +# screen before suspend. Use loginctl lock-session to lock your screen. +exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork +exec feh --bg-fill /usr/share/backgrounds/lightdm.png + +# Use pactl to adjust volume in PulseAudio. +set $refresh_i3status killall -SIGUSR1 i3status +bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status +bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status +bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status +bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status + +# Use Mouse+$mod to drag floating windows to their wanted position +floating_modifier $mod + +# start a terminal +bindsym $mod+Return exec alacritty +bindsym Control+Mod1+t exec alacritty + +# kill focused window +bindsym $mod+Shift+q kill + +# start rofi +bindsym $mod+d exec --no-startup-id rofi -show drun +bindsym $amod+space exec --no-startup-id rofi -show drun + +# change focus +bindsym $mod+h focus left +bindsym $mod+j focus down +bindsym $mod+k focus up +bindsym $mod+l focus right + +# alternatively, you can use the cursor keys: +bindsym $mod+Left focus left +bindsym $mod+Down focus down +bindsym $mod+Up focus up +bindsym $mod+Right focus right + +# move focused window +bindsym $mod+Shift+h move left +bindsym $mod+Shift+j move down +bindsym $mod+Shift+k move up +bindsym $mod+Shift+l move right + +# alternatively, you can use the cursor keys: +bindsym $mod+Shift+Left move left +bindsym $mod+Shift+Down move down +bindsym $mod+Shift+Up move up +bindsym $mod+Shift+Right move right + +# split in horizontal orientation +bindsym $mod+Shift+s split h + +# split in vertical orientation +bindsym $mod+Shift+v split v + +# enter fullscreen mode for the focused container +bindsym $mod+f fullscreen toggle + +# change container layout (stacked, tabbed, toggle split) +bindsym $mod+s layout stacking +bindsym $mod+w layout tabbed +bindsym $mod+e layout toggle split + +# toggle tiling / 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 + +# focus the child container +#bindsym $mod+d focus child + +# Define names for default workspaces for which we configure key bindings later on. +# We use variables to avoid repeating the names in multiple places. +set $ws1 "1" +set $ws2 "2" +set $ws3 "3" +set $ws4 "4" +set $ws5 "5" +set $ws6 "6" +set $ws7 "7" +set $ws8 "8" +set $ws9 "9" +set $ws10 "10" + +# switch to workspace +bindsym $mod+1 workspace number $ws1 +bindsym $mod+2 workspace number $ws2 +bindsym $mod+3 workspace number $ws3 +bindsym $mod+4 workspace number $ws4 +bindsym $mod+5 workspace number $ws5 +bindsym $mod+6 workspace number $ws6 +bindsym $mod+7 workspace number $ws7 +bindsym $mod+8 workspace number $ws8 +bindsym $mod+9 workspace number $ws9 +bindsym $mod+0 workspace number $ws10 + +# move focused container to workspace +bindsym $mod+Shift+1 move container to workspace number $ws1 +bindsym $mod+Shift+2 move container to workspace number $ws2 +bindsym $mod+Shift+3 move container to workspace number $ws3 +bindsym $mod+Shift+4 move container to workspace number $ws4 +bindsym $mod+Shift+5 move container to workspace number $ws5 +bindsym $mod+Shift+6 move container to workspace number $ws6 +bindsym $mod+Shift+7 move container to workspace number $ws7 +bindsym $mod+Shift+8 move container to workspace number $ws8 +bindsym $mod+Shift+9 move container to workspace number $ws9 +bindsym $mod+Shift+0 move container to workspace number $ws10 + +# reload the configuration file +bindsym $mod+Shift+c reload +# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) +bindsym $mod+Shift+r restart + +mode "exit: [l]ogout, [r]eboot, [s]hutdown" { + bindsym l exec i3-msg exit + bindsym r exec systemctl reboot + bindsym s exec systemctl shutdown + bindsym k exec i3lock; mode "default" + + bindsym Escape mode "default" + bindsym Return mode "default" +} + +bindsym $mod+Shift+e mode "exit: [l]ogout, [r]eboot, [s]hutdown, loc[k]" + +# resize window (you can also use the mouse for that) +mode "resize" { + # These bindings trigger as soon as you enter the resize mode + + # Pressing left will shrink the window’s width. + # Pressing right will grow the window’s width. + # Pressing up will shrink the window’s height. + # Pressing down will grow the window’s height. + 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 + + # same bindings, but for the arrow keys + bindsym Left resize shrink width 10 px or 10 ppt + bindsym Down resize grow height 10 px or 10 ppt + bindsym Up resize shrink height 10 px or 10 ppt + bindsym Right resize grow width 10 px or 10 ppt + + # back to normal: Enter or Escape or $mod+r + bindsym Return mode "default" + bindsym Escape mode "default" + bindsym $mod+r mode "default" +} + +bindsym $mod+r mode "resize" + +# Start i3bar to display a workspace bar (plus the system information i3status +# ========== THEME ========== +set $bg #282828 +set $red #cc241d +set $green #98971a +set $yellow #d79921 +set $blue #458588 +set $purple #b16286 +set $aqua #689d68 +set $gray #a89984 +set $darkgray #1d2021 + +bar { + font pango:DejaVu Sans Mono, FontAwesome 12 + position top + status_command i3status-rs + separator_symbol " " + + colors { + background $bg + statusline $yellow + # workspaces section + # border backgr. text + focused_workspace $aqua $aqua $darkgray + inactive_workspace $darkgray $darkgray $yellow + active_workspace $darkgray $darkgray $yellow + urgent_workspace $red $red $bg + } +} + +default_border pixel 1 +default_floating_border none +hide_edge_borders both + +# class border|backgr|text|indicator|child_border +client.focused $green $green $darkgray $purple $darkgray +client.focused_inactive $darkgray $darkgray $yellow $purple $darkgray +client.unfocused $darkgray $darkgray $yellow $purple $darkgray +client.urgent $red $red $white $red $red diff --git a/.config/i3status-rust/config.toml b/.config/i3status-rust/config.toml new file mode 100644 index 0000000..c7fd7cb --- /dev/null +++ b/.config/i3status-rust/config.toml @@ -0,0 +1,36 @@ +[theme] +name = "gruvbox-dark" + +[icons] +name = "awesome" + + +[[block]] +block = "battery" +interval = 10 +format = "{percentage} {time}" + +[[block]] +block = "cpu" +interval = 1 +format = "{barchart} {utilization} {frequency}" + +[[block]] +block = "memory" +format_mem = "{mem_used}({mem_used_percents})" +display_type = "memory" +icons = true +interval = 5 +warning_mem = 80 +critical_mem = 95 + +[[block]] +block = "sound" +step_width = 3 + +[[block]] +block = "time" +format = "%a %m/%d %r" +timezone = "US/Eastern" +interval = 1 +locale = "en_US" diff --git a/init.vim b/.config/nvim/init.vim similarity index 96% rename from init.vim rename to .config/nvim/init.vim index cf7cacb..8ca2848 100644 --- a/init.vim +++ b/.config/nvim/init.vim @@ -1,4 +1,4 @@ -call plug#begin('~/local/share/nvim/plugged') +call plug#begin('~/.local/share/nvim/plugged') Plug 'vim-airline/vim-airline' Plug 'morhetz/gruvbox' Plug 'ms-jpq/chadtree' diff --git a/.zshrc b/.zshrc index d710150..995eb3e 100644 --- a/.zshrc +++ b/.zshrc @@ -23,4 +23,8 @@ plugins=( yarn ) +export GDK_SCALE=2 +export GDK_DPI_SCALE=0.5 +export QT_AUTO_SCREEN_SCALE_FACTOR=1 + source $ZSH/oh-my-zsh.sh diff --git a/setup.sh b/setup.sh index d76fc4a..66e64a2 100755 --- a/setup.sh +++ b/setup.sh @@ -1,17 +1,28 @@ # Install ohmyzsh sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" -sudo chown -R $(whoami) ~/.oh-my-zsh ~/.zshrc +sudo chown -R $(whoami) $HOME/.oh-my-zsh $HOME/.zshrc # Install thefuck, zsh-suggestion sudo python3 -m pip install thefuck git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions # Copy dotfiles -cp .zshrc ~/.zshrc -touch ~/.z +ln -sn $PWD/.config $HOME/.config +ln -s $PWD/.zshrc $HOME/.zshrc +touch $HOME/.z + +mode "exit: [l]ogout, [r]eboot, [s]hutdown" { + bindsym l exec i3-msg exit + bindsym r exec systemctl reboot + bindsym s exec systemctl shutdown + bindsym k exec i3lock; mode "default" + bindsym Escape mode "default" + bindsym Return mode "default" + +} + +bindsym $mod+x mode "exit: [l]ogout, [r]eboot, [s]hutdown, loc[k]" -mkdir -p ~/.config/nvim -cp init.vim ~/.config/nvim/init.vim setup_macos() { # Install Homebrew @@ -19,21 +30,22 @@ setup_macos() { } # Determine which OS is in use -case uname in +case "$(uname)" in Linux*) INSTALL_CMD="yay -S";; Darwin*) INSTALL_CMD="brew install";; esac # Install software +$INSTALL_CMD git cloc htop $INSTALL_CMD neovim $INSTALL_CMD rustup rust-analyzer $INSTALL_CMD go gopls $INSTALL_CMD nodejs yarn -$INSTALL_CMD cloc -if [[ uname == "Linux" ]]; then - $INSTALL_CMD wine-staging evince neofetch +if [[ "$(uname)" == "Linux" ]]; then + $INSTALL_CMD lxappearance + $INSTALL_CMD adapta-gtk-theme papirus-icon-theme nerd-fonts-complete + $INSTALL_CMD evince neofetch feh $INSTALL_CMD docker docker-compose $INSTALL_CMD texlive-full -elif [[ uname == "Darwin" ]]; then - $INSTALL_CMD htop +