diff --git a/_suckless/_scripts/dmenu-audio b/_desktop/_scripts/dmenu-audio similarity index 100% rename from _suckless/_scripts/dmenu-audio rename to _desktop/_scripts/dmenu-audio diff --git a/_suckless/_scripts/dmenu-bluetooth b/_desktop/_scripts/dmenu-bluetooth similarity index 100% rename from _suckless/_scripts/dmenu-bluetooth rename to _desktop/_scripts/dmenu-bluetooth diff --git a/_suckless/_scripts/dmenu-display b/_desktop/_scripts/dmenu-display similarity index 100% rename from _suckless/_scripts/dmenu-display rename to _desktop/_scripts/dmenu-display diff --git a/_suckless/_scripts/dmenu-emoji b/_desktop/_scripts/dmenu-emoji similarity index 100% rename from _suckless/_scripts/dmenu-emoji rename to _desktop/_scripts/dmenu-emoji diff --git a/_desktop/install-desktop.sh b/_desktop/install-desktop.sh index b5481c5..3362e84 100644 --- a/_desktop/install-desktop.sh +++ b/_desktop/install-desktop.sh @@ -4,7 +4,7 @@ mkdir -p ~/.config ~/.local/bin # link config -for i in clipit dunst gtk-3.0 neofetch zathura; do +for i in clipit dunst gtk-3.0 neofetch qtile zathura; do rm -rf ~/.config/${i} ln -sf $XDG_DATA_HOME/repos/dotfiles/_desktop/${i} ~/.config done @@ -17,3 +17,8 @@ done # copy firefox wrapper ln -sf $XDG_DATA_HOME/repos/dotfiles/_desktop/firefox ~/.local/bin + +# install scripts +for i in _scripts/*; do + ln -sf $(pwd)/$i ~/.local/bin +done diff --git a/_desktop/qtile/config.py b/_desktop/qtile/config.py new file mode 100644 index 0000000..f05600e --- /dev/null +++ b/_desktop/qtile/config.py @@ -0,0 +1,208 @@ +from libqtile import bar, extension, layout, widget +from libqtile.config import Click, Drag, DropDown, Group, Key, Match, ScratchPad, Screen +from libqtile.lazy import lazy +from libqtile.dgroups import simple_key_binder +from libqtile.backend.wayland import InputConfig + +groups = [ + Group("1", label="\uf292"), + Group("2", label="\uf738", matches=[Match(wm_class=["firefox"])]), + Group("3", label="\uf70d", matches=[Match(wm_class=["Ferdium"])]), + Group("4", label="\uf7aa", matches=[Match(wm_class=["mutt"])]), + Group("5", label="\uf120"), + Group("6", label="\uf120"), + Group("7", label="\ufc58"), + Group("8", label="\uf9b0", matches=[Match(wm_class=["Slack"])]), + Group("9", label="\uf296"), + Group("0", label="\uf2bb", matches=[Match(wm_class=["workfx"])]), + ScratchPad("scratchpad", [ + DropDown( + "spterm", "sh -c 'BROWSER=firefox st'", + on_focus_lost_hide=False, + width=0.40, + height=0.50, + x=0.30, + y=0.25, + ), + DropDown( + "spwork", "sh -c 'BROWSER=workfx st -n work'", + on_focus_lost_hide=False, + width=0.40, + height=0.50, + x=0.30, + y=0.25, + ), + ]), +] + +mod = "mod4" +keys = [ + # switch between windows + Key([mod], "h", lazy.layout.left()), + Key([mod], "l", lazy.layout.right()), + Key([mod], "j", lazy.layout.down()), + Key([mod], "k", lazy.layout.up()), + # move windows + Key([mod, "control"], "h", lazy.layout.shuffle_left()), + Key([mod, "control"], "l", lazy.layout.shuffle_right()), + Key([mod, "control"], "j", lazy.layout.shuffle_down()), + Key([mod, "control"], "k", lazy.layout.shuffle_up()), + # resize windows + Key([mod, "shift"], "h", lazy.layout.grow_left()), + Key([mod, "shift"], "l", lazy.layout.grow_right()), + Key([mod, "shift"], "j", lazy.layout.grow_down()), + Key([mod, "shift"], "k", lazy.layout.grow_up()), + Key([mod, "shift"], "0", lazy.layout.normalize()), + # app binds + Key([mod], "Return", lazy.spawn("sh -c 'BROWSER=firefox st'")), + Key([mod], "space", lazy.spawncmd()), + Key([mod], "e", lazy.group["scratchpad"].dropdown_toggle('spterm')), + Key([mod], "i", lazy.spawn("scrot -f -s 'scrot_%Y-%m-%d_%H-%M-%S_%s.png'")), + Key([mod], "m", lazy.spawn("sh -c 'pgrep -x neomutt > /dev/null || BROWSER=firefox st -n mutt -e neomutt'")), + Key([mod, "shift"], "e", lazy.group["scratchpad"].dropdown_toggle('spwork')), + Key([mod, "shift"], "i", lazy.spawn("scrot -f 'scrot_%Y-%m-%d_%H-%M-%S_%s.png'")), + Key([mod, "shift"], "Return", lazy.spawn("sh -c 'BROWSER=workfx st -n work'")), + Key([mod, "control"], "a", lazy.spawn("dmenu-audio")), + Key([mod, "control"], "b", lazy.spawn("dmenu-bluetooth")), + Key([mod, "control"], "e", lazy.spawn("dmenu-emoji")), + Key([mod, "control"], "d", lazy.spawn("dmenu-display")), + # WM control + Key([mod], "q", lazy.window.kill()), + Key([mod, "control", "shift"], "l", lazy.spwan("slock")), + Key([mod, "control", "shift"], "q", lazy.shutdown()), + Key([mod, "control", "shift"], "r", lazy.reload_config()), + # media keys + Key([], "XF86AudioMute", lazy.spawn("pactl set-sink-mute @DEFAULT_SINK@ toggle")), + Key([], "XF86AudioMicMute", lazy.spawn("sb-vol-in micmute")), + Key([], "XF86AudioRaiseVolume", lazy.spawn("pactl set-sink-volume @DEFAULT_SINK@ +5%")), + Key([], "XF86AudioLowerVolume", lazy.spawn("pactl set-sink-volume @DEFAULT_SINK@ -5%")), + Key([], "XF86MonBrightnessUp", lazy.spawn("xbacklight -inc 10")), + Key([], "XF86MonBrightnessDown", lazy.spawn("xbacklight -dec 10")), +] + +dgroups_key_binder = simple_key_binder(mod) +dgroups_app_rules = [] # type: list + +layouts = [ + layout.Columns( + border_focus='#ffffff', + border_normal="#272822", + border_width=2, + insert_position=1, + margin=[5, 5, 5, 5] + ), +] + +widget_defaults = dict( + foreground="#f8f8f2", + background="#272822", + font="RobotoMono Nerd Font", + fontsize=13, +) +extension_defaults = widget_defaults.copy() + +screens = [ + Screen( + top=bar.Bar( + [ + widget.GroupBox( + disable_drag=True, + highlight_method='block', + rounded=False, + this_current_screen_border='#005577', + this_screen_border='#f8f8f2', + urgent_border='#770000', + urgent_text='#ffffff', + ), + widget.Prompt( + prompt='open: ', + record_history=False, + ), + widget.Spacer(), + widget.Maildir( + hide_when_empty=True, + maildir_path='~/.local/share/mail/priv', + nonempty_color="#fff27f", + sub_folders=[{'label': 'priv', 'path': 'INBOX'}, {'label': 'sites', 'path': 'sites'}], + update_interval=5, + ), + widget.Maildir( + hide_when_empty=True, + maildir_path='~/.local/share/mail/klub', + nonempty_color="#fff27f", + total=True, + sub_folders=[{'label': 'klub', 'path': 'INBOX'}], + update_interval=5, + ), + widget.Maildir( + hide_when_empty=True, + maildir_path='~/.local/share/mail/info', + nonempty_color="#fff27f", + total=True, + sub_folders=[{'label': 'info', 'path': 'INBOX'}], + update_interval=5, + ), + widget.Maildir( + hide_when_empty=True, + maildir_path='~/.local/share/mail/work', + nonempty_color="#fff27f", + total=True, + sub_folders=[{'label': 'work', 'path': 'INBOX'}], + update_interval=5, + ), + widget.Wlan( + format='\uf1eb {essid}', + disconnected_message=' NO WIFI ', + ), + widget.Sep(padding=15, size_percent=60), + widget.Battery( + format='\uf241 {char} {percent:2.0%}', + charge_char="\uf077", + discharge_char="\uf078", + full_char="\uf102", + unknown_char="\uf444", + ), + widget.Sep(padding=15, size_percent=60), + widget.Clock( + format='\uf073 [%d] %I:%M:%S %p' + ), + widget.Sep(padding=15, size_percent=60), + widget.PulseVolume( + emoji=True, + step=5, + update_interval=0.1, + ), + widget.Systray(), + ], + 24, + margin=[5, 5, 5, 5] + ), + ), +] + +mouse = [ + Drag([mod], "Button1", lazy.window.set_position_floating(), start=lazy.window.get_position()), + Drag([mod], "Button3", lazy.window.set_size_floating(), start=lazy.window.get_size()), + Click([mod], "Button2", lazy.window.bring_to_front()), +] + +floating_layout = layout.Floating( + float_rules=[ + *layout.Floating.default_float_rules, + ], + border_focus='#ffffff', + border_normal="#272822", + border_width=2, +) + +auto_fullscreen = True +auto_minimize = True +bring_front_click = False +cursor_warp = False +focus_on_window_activation = "smart" +follow_mouse_focus = True +reconfigure_screens = True +wmname = "LG3D" +# wl_input_rules = { +# "type:keyboard": InputConfig(kb_layout='pl'), +# } diff --git a/_suckless/dmenu/LICENSE b/_desktop/suckless/dmenu/LICENSE similarity index 100% rename from _suckless/dmenu/LICENSE rename to _desktop/suckless/dmenu/LICENSE diff --git a/_suckless/dmenu/Makefile b/_desktop/suckless/dmenu/Makefile similarity index 100% rename from _suckless/dmenu/Makefile rename to _desktop/suckless/dmenu/Makefile diff --git a/_suckless/dmenu/README.md b/_desktop/suckless/dmenu/README.md similarity index 100% rename from _suckless/dmenu/README.md rename to _desktop/suckless/dmenu/README.md diff --git a/_suckless/dmenu/arg.h b/_desktop/suckless/dmenu/arg.h similarity index 100% rename from _suckless/dmenu/arg.h rename to _desktop/suckless/dmenu/arg.h diff --git a/_suckless/dmenu/config.def.h b/_desktop/suckless/dmenu/config.def.h similarity index 100% rename from _suckless/dmenu/config.def.h rename to _desktop/suckless/dmenu/config.def.h diff --git a/_suckless/dmenu/config.h b/_desktop/suckless/dmenu/config.h similarity index 100% rename from _suckless/dmenu/config.h rename to _desktop/suckless/dmenu/config.h diff --git a/_suckless/dmenu/config.mk b/_desktop/suckless/dmenu/config.mk similarity index 100% rename from _suckless/dmenu/config.mk rename to _desktop/suckless/dmenu/config.mk diff --git a/_suckless/dmenu/dmenu.1 b/_desktop/suckless/dmenu/dmenu.1 similarity index 100% rename from _suckless/dmenu/dmenu.1 rename to _desktop/suckless/dmenu/dmenu.1 diff --git a/_suckless/dmenu/dmenu.c b/_desktop/suckless/dmenu/dmenu.c similarity index 100% rename from _suckless/dmenu/dmenu.c rename to _desktop/suckless/dmenu/dmenu.c diff --git a/_suckless/dmenu/dmenu_path b/_desktop/suckless/dmenu/dmenu_path similarity index 100% rename from _suckless/dmenu/dmenu_path rename to _desktop/suckless/dmenu/dmenu_path diff --git a/_suckless/dmenu/dmenu_run b/_desktop/suckless/dmenu/dmenu_run similarity index 100% rename from _suckless/dmenu/dmenu_run rename to _desktop/suckless/dmenu/dmenu_run diff --git a/_suckless/dmenu/drw.c b/_desktop/suckless/dmenu/drw.c similarity index 100% rename from _suckless/dmenu/drw.c rename to _desktop/suckless/dmenu/drw.c diff --git a/_suckless/dmenu/drw.h b/_desktop/suckless/dmenu/drw.h similarity index 100% rename from _suckless/dmenu/drw.h rename to _desktop/suckless/dmenu/drw.h diff --git a/_suckless/dmenu/stest.1 b/_desktop/suckless/dmenu/stest.1 similarity index 100% rename from _suckless/dmenu/stest.1 rename to _desktop/suckless/dmenu/stest.1 diff --git a/_suckless/dmenu/stest.c b/_desktop/suckless/dmenu/stest.c similarity index 100% rename from _suckless/dmenu/stest.c rename to _desktop/suckless/dmenu/stest.c diff --git a/_suckless/dmenu/util.c b/_desktop/suckless/dmenu/util.c similarity index 100% rename from _suckless/dmenu/util.c rename to _desktop/suckless/dmenu/util.c diff --git a/_suckless/dmenu/util.h b/_desktop/suckless/dmenu/util.h similarity index 100% rename from _suckless/dmenu/util.h rename to _desktop/suckless/dmenu/util.h diff --git a/_suckless/slock/LICENSE b/_desktop/suckless/slock/LICENSE similarity index 100% rename from _suckless/slock/LICENSE rename to _desktop/suckless/slock/LICENSE diff --git a/_suckless/slock/Makefile b/_desktop/suckless/slock/Makefile similarity index 100% rename from _suckless/slock/Makefile rename to _desktop/suckless/slock/Makefile diff --git a/_suckless/slock/README.md b/_desktop/suckless/slock/README.md similarity index 100% rename from _suckless/slock/README.md rename to _desktop/suckless/slock/README.md diff --git a/_suckless/slock/arg.h b/_desktop/suckless/slock/arg.h similarity index 100% rename from _suckless/slock/arg.h rename to _desktop/suckless/slock/arg.h diff --git a/_suckless/slock/config.def.h b/_desktop/suckless/slock/config.def.h similarity index 100% rename from _suckless/slock/config.def.h rename to _desktop/suckless/slock/config.def.h diff --git a/_suckless/slock/config.h b/_desktop/suckless/slock/config.h similarity index 100% rename from _suckless/slock/config.h rename to _desktop/suckless/slock/config.h diff --git a/_suckless/slock/config.mk b/_desktop/suckless/slock/config.mk similarity index 100% rename from _suckless/slock/config.mk rename to _desktop/suckless/slock/config.mk diff --git a/_suckless/slock/explicit_bzero.c b/_desktop/suckless/slock/explicit_bzero.c similarity index 100% rename from _suckless/slock/explicit_bzero.c rename to _desktop/suckless/slock/explicit_bzero.c diff --git a/_suckless/slock/slock.1 b/_desktop/suckless/slock/slock.1 similarity index 100% rename from _suckless/slock/slock.1 rename to _desktop/suckless/slock/slock.1 diff --git a/_suckless/slock/slock.c b/_desktop/suckless/slock/slock.c similarity index 100% rename from _suckless/slock/slock.c rename to _desktop/suckless/slock/slock.c diff --git a/_suckless/slock/util.h b/_desktop/suckless/slock/util.h similarity index 100% rename from _suckless/slock/util.h rename to _desktop/suckless/slock/util.h diff --git a/_suckless/st/LICENSE b/_desktop/suckless/st/LICENSE similarity index 100% rename from _suckless/st/LICENSE rename to _desktop/suckless/st/LICENSE diff --git a/_suckless/st/Makefile b/_desktop/suckless/st/Makefile similarity index 100% rename from _suckless/st/Makefile rename to _desktop/suckless/st/Makefile diff --git a/_suckless/st/README.md b/_desktop/suckless/st/README.md similarity index 100% rename from _suckless/st/README.md rename to _desktop/suckless/st/README.md diff --git a/_suckless/st/arg.h b/_desktop/suckless/st/arg.h similarity index 100% rename from _suckless/st/arg.h rename to _desktop/suckless/st/arg.h diff --git a/_suckless/st/config.def.h b/_desktop/suckless/st/config.def.h similarity index 100% rename from _suckless/st/config.def.h rename to _desktop/suckless/st/config.def.h diff --git a/_suckless/st/config.h b/_desktop/suckless/st/config.h similarity index 100% rename from _suckless/st/config.h rename to _desktop/suckless/st/config.h diff --git a/_suckless/st/config.mk b/_desktop/suckless/st/config.mk similarity index 100% rename from _suckless/st/config.mk rename to _desktop/suckless/st/config.mk diff --git a/_suckless/st/st.1 b/_desktop/suckless/st/st.1 similarity index 100% rename from _suckless/st/st.1 rename to _desktop/suckless/st/st.1 diff --git a/_suckless/st/st.c b/_desktop/suckless/st/st.c similarity index 100% rename from _suckless/st/st.c rename to _desktop/suckless/st/st.c diff --git a/_suckless/st/st.h b/_desktop/suckless/st/st.h similarity index 100% rename from _suckless/st/st.h rename to _desktop/suckless/st/st.h diff --git a/_suckless/st/st.info b/_desktop/suckless/st/st.info similarity index 100% rename from _suckless/st/st.info rename to _desktop/suckless/st/st.info diff --git a/_suckless/st/win.h b/_desktop/suckless/st/win.h similarity index 100% rename from _suckless/st/win.h rename to _desktop/suckless/st/win.h diff --git a/_suckless/st/x.c b/_desktop/suckless/st/x.c similarity index 100% rename from _suckless/st/x.c rename to _desktop/suckless/st/x.c diff --git a/_suckless/_scripts/sb-battery b/_unused/suckless/_scripts/sb-battery similarity index 100% rename from _suckless/_scripts/sb-battery rename to _unused/suckless/_scripts/sb-battery diff --git a/_suckless/_scripts/sb-emerge b/_unused/suckless/_scripts/sb-emerge similarity index 100% rename from _suckless/_scripts/sb-emerge rename to _unused/suckless/_scripts/sb-emerge diff --git a/_suckless/_scripts/sb-mail b/_unused/suckless/_scripts/sb-mail similarity index 100% rename from _suckless/_scripts/sb-mail rename to _unused/suckless/_scripts/sb-mail diff --git a/_suckless/_scripts/sb-network b/_unused/suckless/_scripts/sb-network similarity index 100% rename from _suckless/_scripts/sb-network rename to _unused/suckless/_scripts/sb-network diff --git a/_suckless/_scripts/sb-vol-in b/_unused/suckless/_scripts/sb-vol-in similarity index 100% rename from _suckless/_scripts/sb-vol-in rename to _unused/suckless/_scripts/sb-vol-in diff --git a/_suckless/_scripts/sb-vol-out b/_unused/suckless/_scripts/sb-vol-out similarity index 100% rename from _suckless/_scripts/sb-vol-out rename to _unused/suckless/_scripts/sb-vol-out diff --git a/_suckless/dwm/LICENSE b/_unused/suckless/dwm/LICENSE similarity index 100% rename from _suckless/dwm/LICENSE rename to _unused/suckless/dwm/LICENSE diff --git a/_suckless/dwm/Makefile b/_unused/suckless/dwm/Makefile similarity index 100% rename from _suckless/dwm/Makefile rename to _unused/suckless/dwm/Makefile diff --git a/_suckless/dwm/README.md b/_unused/suckless/dwm/README.md similarity index 100% rename from _suckless/dwm/README.md rename to _unused/suckless/dwm/README.md diff --git a/_suckless/dwm/_patches/dwm-preserveonrestart-6.3.diff b/_unused/suckless/dwm/_patches/dwm-preserveonrestart-6.3.diff similarity index 100% rename from _suckless/dwm/_patches/dwm-preserveonrestart-6.3.diff rename to _unused/suckless/dwm/_patches/dwm-preserveonrestart-6.3.diff diff --git a/_suckless/dwm/config.def.h b/_unused/suckless/dwm/config.def.h similarity index 100% rename from _suckless/dwm/config.def.h rename to _unused/suckless/dwm/config.def.h diff --git a/_suckless/dwm/config.h b/_unused/suckless/dwm/config.h similarity index 100% rename from _suckless/dwm/config.h rename to _unused/suckless/dwm/config.h diff --git a/_suckless/dwm/config.mk b/_unused/suckless/dwm/config.mk similarity index 100% rename from _suckless/dwm/config.mk rename to _unused/suckless/dwm/config.mk diff --git a/_suckless/dwm/drw.c b/_unused/suckless/dwm/drw.c similarity index 100% rename from _suckless/dwm/drw.c rename to _unused/suckless/dwm/drw.c diff --git a/_suckless/dwm/drw.h b/_unused/suckless/dwm/drw.h similarity index 100% rename from _suckless/dwm/drw.h rename to _unused/suckless/dwm/drw.h diff --git a/_suckless/dwm/dwm.1 b/_unused/suckless/dwm/dwm.1 similarity index 100% rename from _suckless/dwm/dwm.1 rename to _unused/suckless/dwm/dwm.1 diff --git a/_suckless/dwm/dwm.c b/_unused/suckless/dwm/dwm.c similarity index 100% rename from _suckless/dwm/dwm.c rename to _unused/suckless/dwm/dwm.c diff --git a/_suckless/dwm/transient.c b/_unused/suckless/dwm/transient.c similarity index 100% rename from _suckless/dwm/transient.c rename to _unused/suckless/dwm/transient.c diff --git a/_suckless/dwm/util.c b/_unused/suckless/dwm/util.c similarity index 100% rename from _suckless/dwm/util.c rename to _unused/suckless/dwm/util.c diff --git a/_suckless/dwm/util.h b/_unused/suckless/dwm/util.h similarity index 100% rename from _suckless/dwm/util.h rename to _unused/suckless/dwm/util.h diff --git a/_suckless/dwm/vanitygaps.c b/_unused/suckless/dwm/vanitygaps.c similarity index 100% rename from _suckless/dwm/vanitygaps.c rename to _unused/suckless/dwm/vanitygaps.c diff --git a/_suckless/dwmblocks/LICENSE b/_unused/suckless/dwmblocks/LICENSE similarity index 100% rename from _suckless/dwmblocks/LICENSE rename to _unused/suckless/dwmblocks/LICENSE diff --git a/_suckless/dwmblocks/Makefile b/_unused/suckless/dwmblocks/Makefile similarity index 100% rename from _suckless/dwmblocks/Makefile rename to _unused/suckless/dwmblocks/Makefile diff --git a/_suckless/dwmblocks/blocks.def.h b/_unused/suckless/dwmblocks/blocks.def.h similarity index 100% rename from _suckless/dwmblocks/blocks.def.h rename to _unused/suckless/dwmblocks/blocks.def.h diff --git a/_suckless/dwmblocks/blocks.h b/_unused/suckless/dwmblocks/blocks.h similarity index 100% rename from _suckless/dwmblocks/blocks.h rename to _unused/suckless/dwmblocks/blocks.h diff --git a/_suckless/dwmblocks/dwmblocks.c b/_unused/suckless/dwmblocks/dwmblocks.c similarity index 100% rename from _suckless/dwmblocks/dwmblocks.c rename to _unused/suckless/dwmblocks/dwmblocks.c diff --git a/_suckless/install-scripts.sh b/_unused/suckless/install-scripts.sh similarity index 100% rename from _suckless/install-scripts.sh rename to _unused/suckless/install-scripts.sh diff --git a/_desktop/xresources b/_unused/xresources similarity index 100% rename from _desktop/xresources rename to _unused/xresources