summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.bash_profile2
-rw-r--r--.doom.d/config.el13
-rw-r--r--.doom.d/init.el190
-rw-r--r--.doom.d/packages.el52
-rwxr-xr-xqtile/autorc26
-rw-r--r--qtile/config.py199
-rw-r--r--qtile/python.pngbin0 -> 52166 bytes
7 files changed, 482 insertions, 0 deletions
diff --git a/.bash_profile b/.bash_profile
new file mode 100644
index 0000000..debd6e7
--- /dev/null
+++ b/.bash_profile
@@ -0,0 +1,2 @@
1export PATH="$PATH:$HOME/.local/bin"
2export TERM=xterm
diff --git a/.doom.d/config.el b/.doom.d/config.el
new file mode 100644
index 0000000..514a52e
--- /dev/null
+++ b/.doom.d/config.el
@@ -0,0 +1,13 @@
1(setq user-full-name "Jakub Dluosz"
2 user-mail-address "jdlugosz963@gmail.com")
3
4(setq doom-theme 'doom-dracula)
5(setq doom-font (font-spec :family "Mononoki Nerd Font Mono" :size 13))
6
7(setq org-directory "~/org/")
8
9(setq display-line-numbers-type t)
10
11(setq display-line-numbers 'relative)
12
13(use-package! lsp-tailwindcss)
diff --git a/.doom.d/init.el b/.doom.d/init.el
new file mode 100644
index 0000000..dc33adb
--- /dev/null
+++ b/.doom.d/init.el
@@ -0,0 +1,190 @@
1;;; init.el -*- lexical-binding: t; -*-
2
3;; This file controls what Doom modules are enabled and what order they load
4;; in. Remember to run 'doom sync' after modifying it!
5
6;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's
7;; documentation. There you'll find a "Module Index" link where you'll find
8;; a comprehensive list of Doom's modules and what flags they support.
9
10;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or
11;; 'C-c c k' for non-vim users) to view its documentation. This works on
12;; flags as well (those symbols that start with a plus).
13;;
14;; Alternatively, press 'gd' (or 'C-c c d') on a module to browse its
15;; directory (for easy access to its source code).
16
17(doom! :input
18 ;;chinese
19 ;;japanese
20 ;;layout ; auie,ctsrnm is the superior home row
21
22 :completion
23 company ; the ultimate code completion backend
24 ;;helm ; the *other* search engine for love and life
25 ;;ido ; the other *other* search engine...
26 ;;ivy ; a search engine for love and life
27 vertico ; the search engine of the future
28
29 :ui
30 ;;deft ; notational velocity for Emacs
31 doom ; what makes DOOM look the way it does
32 doom-dashboard ; a nifty splash screen for Emacs
33 doom-quit ; DOOM quit-message prompts when you quit Emacs
34 (emoji +unicode) ; 🙂
35 hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
36 ;;hydra
37 ;;indent-guides ; highlighted indent columns
38 ;;ligatures ; ligatures and symbols to make your code pretty again
39 minimap ; show a map of the code on the side
40 modeline ; snazzy, Atom-inspired modeline, plus API
41 ;;nav-flash ; blink cursor line after big motions
42 neotree ; a project drawer, like NERDTree for vim
43 ophints ; highlight the region an operation acts on
44 (popup +defaults) ; tame sudden yet inevitable temporary windows
45 ;;tabs ; a tab bar for Emacs
46 ;;treemacs ; a project drawer, like neotree but cooler
47 ;;unicode ; extended unicode support for various languages
48 vc-gutter ; vcs diff in the fringe
49 vi-tilde-fringe ; fringe tildes to mark beyond EOB
50 ;;window-select ; visually switch windows
51 workspaces ; tab emulation, persistence & separate workspaces
52 ;;zen ; distraction-free coding or writing
53
54 :editor
55 (evil +everywhere); come to the dark side, we have cookies
56 file-templates ; auto-snippets for empty files
57 fold ; (nigh) universal code folding
58 ;;(format +onsave) ; automated prettiness
59 ;;god ; run Emacs commands without modifier keys
60 ;;lispy ; vim for lisp, for people who don't like vim
61 ;;multiple-cursors ; editing in many places at once
62 ;;objed ; text object editing for the innocent
63 ;;parinfer ; turn lisp into python, sort of
64 ;;rotate-text ; cycle region at point between text candidates
65 snippets ; my elves. They type so I don't have to
66 ;;word-wrap ; soft wrapping with language-aware indent
67
68 :emacs
69 dired ; making dired pretty [functional]
70 electric ; smarter, keyword-based electric-indent
71 ;;ibuffer ; interactive buffer management
72 undo ; persistent, smarter undo for your inevitable mistakes
73 vc ; version-control and Emacs, sitting in a tree
74
75 :term
76 ;;eshell ; the elisp shell that works everywhere
77 ;;shell ; simple shell REPL for Emacs
78 ;;term ; basic terminal emulator for Emacs
79 vterm ; the best terminal emulation in Emacs
80
81 :checkers
82 syntax ; tasing you for every semicolon you forget
83 ;;(spell +flyspell) ; tasing you for misspelling mispelling
84 ;;grammar ; tasing grammar mistake every you make
85
86 :tools
87 ;;ansible
88 ;;biblio ; Writes a PhD for you (citation needed)
89 ;;debugger ; FIXME stepping through code, to help you add bugs
90 ;;direnv
91 ;;docker
92 ;;editorconfig ; let someone else argue about tabs vs spaces
93 ;;ein ; tame Jupyter notebooks with emacs
94 (eval +overlay) ; run code, run (also, repls)
95 ;;gist ; interacting with github gists
96 lookup ; navigate your code and its documentation
97 ;;lsp ; M-x vscode
98 magit ; a git porcelain for Emacs
99 ;;make ; run make tasks from Emacs
100 ;;pass ; password manager for nerds
101 pdf ; pdf enhancements
102 ;;prodigy ; FIXME managing external services & code builders
103 ;;rgb ; creating color strings
104 ;;taskrunner ; taskrunner for all your projects
105 ;;terraform ; infrastructure as code
106 ;;tmux ; an API for interacting with tmux
107 ;;upload ; map local to remote projects via ssh/ftp
108
109 :os
110 (:if IS-MAC macos) ; improve compatibility with macOS
111 ;;tty ; improve the terminal Emacs experience
112
113 :lang
114 ;;agda ; types of types of types of types...
115 ;;beancount ; mind the GAAP
116 ;;cc ; C > C++ == 1
117 ;;clojure ; java with a lisp
118 ;;common-lisp ; if you've seen one lisp, you've seen them all
119 ;;coq ; proofs-as-programs
120 ;;crystal ; ruby at the speed of c
121 ;;csharp ; unity, .NET, and mono shenanigans
122 ;;data ; config/data formats
123 ;;(dart +flutter) ; paint ui and not much else
124 ;;dhall
125 ;;elixir ; erlang done right
126 ;;elm ; care for a cup of TEA?
127 emacs-lisp ; drown in parentheses
128 ;;erlang ; an elegant language for a more civilized age
129 ;;ess ; emacs speaks statistics
130 ;;factor
131 ;;faust ; dsp, but you get to keep your soul
132 ;;fsharp ; ML stands for Microsoft's Language
133 ;;fstar ; (dependent) types and (monadic) effects and Z3
134 ;;gdscript ; the language you waited for
135 (go +lsp) ; the hipster dialect
136 (haskell +lsp) ; a language that's lazier than I am
137 ;;hy ; readability of scheme w/ speed of python
138 ;;idris ; a language you can depend on
139 json ; At least it ain't XML
140 ;;(java +meghanada) ; the poster child for carpal tunnel syndrome
141 javascript ; all(hope(abandon(ye(who(enter(here))))))
142 ;;julia ; a better, faster MATLAB
143 ;;kotlin ; a better, slicker Java(Script)
144 ;;latex ; writing papers in Emacs has never been so fun
145 ;;lean ; for folks with too much to prove
146 ;;ledger ; be audit you can be
147 lua ; one-based indices? one-based indices
148 markdown ; writing docs for people to ignore
149 ;;nim ; python + lisp at the speed of c
150 ;;nix ; I hereby declare "nix geht mehr!"
151 ;;ocaml ; an objective camel
152 org ; organize your plain life in plain text
153 php ; perl's insecure younger brother
154 ;;plantuml ; diagrams for confusing people more
155 ;;purescript ; javascript, but functional
156 python ; beautiful is better than ugly
157 ;;qt ; the 'cutest' gui framework ever
158 ;;racket ; a DSL for DSLs
159 ;;raku ; the artist formerly known as perl6
160 rest ; Emacs as a REST client
161 ;;rst ; ReST in peace
162 ;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
163 ;;rust ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
164 ;;scala ; java, but good
165 ;;(scheme +guile) ; a fully conniving family of lisps
166 sh ; she sells {ba,z,fi}sh shells on the C xor
167 ;;sml
168 ;;solidity ; do you need a blockchain? No.
169 ;;swift ; who asked for emoji variables?
170 ;;terra ; Earth and Moon in alignment for performance.
171 web ; the tubes
172 ;;yaml ; JSON, but readable
173 ;;zig ; C, but simpler
174
175 :email
176 (mu4e +org +gmail)
177 ;;notmuch
178 ;;(wanderlust +gmail)
179
180 :app
181 calendar
182 ;;emms
183 everywhere ; *leave* Emacs!? You must be joking
184 ;;irc ; how neckbeards socialize
185 ;;(rss +org) ; emacs as an RSS reader
186 twitter ; twitter client https://twitter.com/vnought
187
188 :config
189 ;;literate
190 (default +bindings +smartparens))
diff --git a/.doom.d/packages.el b/.doom.d/packages.el
new file mode 100644
index 0000000..a62bb6f
--- /dev/null
+++ b/.doom.d/packages.el
@@ -0,0 +1,52 @@
1(package! lsp-tailwindcss :recipe (:host github :repo "merrickluo/lsp-tailwindcss"))
2
3;; -*- no-byte-compile: t; -*-
4;;; $DOOMDIR/packages.el
5
6;; To install a package with Doom you must declare them here and run 'doom sync'
7;; on the command line, then restart Emacs for the changes to take effect -- or
8;; use 'M-x doom/reload'.
9
10
11;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror:
12;(package! some-package)
13
14;; To install a package directly from a remote git repo, you must specify a
15;; `:recipe'. You'll find documentation on what `:recipe' accepts here:
16;; https://github.com/raxod502/straight.el#the-recipe-format
17;(package! another-package
18; :recipe (:host github :repo "username/repo"))
19
20;; If the package you are trying to install does not contain a PACKAGENAME.el
21;; file, or is located in a subdirectory of the repo, you'll need to specify
22;; `:files' in the `:recipe':
23;(package! this-package
24; :recipe (:host github :repo "username/repo"
25; :files ("some-file.el" "src/lisp/*.el")))
26
27;; If you'd like to disable a package included with Doom, you can do so here
28;; with the `:disable' property:
29;(package! builtin-package :disable t)
30
31;; You can override the recipe of a built in package without having to specify
32;; all the properties for `:recipe'. These will inherit the rest of its recipe
33;; from Doom or MELPA/ELPA/Emacsmirror:
34;(package! builtin-package :recipe (:nonrecursive t))
35;(package! builtin-package-2 :recipe (:repo "myfork/package"))
36
37;; Specify a `:branch' to install a package from a particular branch or tag.
38;; This is required for some packages whose default branch isn't 'master' (which
39;; our package manager can't deal with; see raxod502/straight.el#279)
40;(package! builtin-package :recipe (:branch "develop"))
41
42;; Use `:pin' to specify a particular commit to install.
43;(package! builtin-package :pin "1a2b3c4d5e")
44
45
46;; Doom's packages are pinned to a specific commit and updated from release to
47;; release. The `unpin!' macro allows you to unpin single packages...
48;(unpin! pinned-package)
49;; ...or multiple packages
50;(unpin! pinned-package another-pinned-package)
51;; ...Or *all* packages (NOT RECOMMENDED; will likely break things)
52;(unpin! t)
diff --git a/qtile/autorc b/qtile/autorc
new file mode 100755
index 0000000..14969c9
--- /dev/null
+++ b/qtile/autorc
@@ -0,0 +1,26 @@
1#!/bin/bash
2
3function off_monitor_if_hdmi_plugged_in() {
4 monitor_status=$(xrandr | grep "HDMI-1-4 connected" | wc -l)
5
6 if [ $monitor_status == 1 ];
7 then
8 xrandr --auto
9 xrandr --output eDP-1 --off
10 fi
11}
12
13function caps_to_esc(){ xmodmap -e 'clear Lock' -e 'keycode 0x42 = Escape'; }
14
15function start() {
16 killall $1
17 sleep .5
18 $($1 $2) &
19}
20
21off_monitor_if_hdmi_plugged_in
22caps_to_esc
23
24start picom "-b -D 4 --vsync"
25start nitrogen "--restore"
26start run_spotifyd
diff --git a/qtile/config.py b/qtile/config.py
new file mode 100644
index 0000000..0ab888b
--- /dev/null
+++ b/qtile/config.py
@@ -0,0 +1,199 @@
1import os
2import subprocess
3
4from typing import List
5
6from libqtile import bar, layout, widget
7from libqtile.config import Click, Drag, Group, Key, Match, Screen
8from libqtile import extension
9from libqtile.lazy import lazy
10from libqtile.utils import guess_terminal
11from libqtile import hook
12
13mod = "mod4"
14terminal = guess_terminal()
15
16BAR = '#282a36'
17YELLOW = '#f1fa8c'
18RED = '#ff5555'
19GREEN = '#50fa7b'
20CYAN = '#8be9fd'
21
22
23@hook.subscribe.startup_once
24def autostart():
25 home = os.path.expanduser('~/.config/qtile/autorc')
26 subprocess.run([home])
27
28keys = [
29 Key([mod], "h", lazy.layout.left(), desc="Move focus to left"),
30 Key([mod], "l", lazy.layout.right(), desc="Move focus to right"),
31 Key([mod], "j", lazy.layout.down(), desc="Move focus down"),
32 Key([mod], "k", lazy.layout.up(), desc="Move focus up"),
33 Key([mod], "space", lazy.layout.next(),
34 desc="Move window focus to other window"),
35
36 Key([mod, "shift"], "h", lazy.layout.shuffle_left(),
37 desc="Move window to the left"),
38 Key([mod, "shift"], "l", lazy.layout.shuffle_right(),
39 desc="Move window to the right"),
40 Key([mod, "shift"], "j", lazy.layout.shuffle_down(),
41 desc="Move window down"),
42 Key([mod, "shift"], "k", lazy.layout.shuffle_up(), desc="Move window up"),
43
44 Key([mod, "control"], "h", lazy.layout.grow_left(),
45 desc="Grow window to the left"),
46 Key([mod, "control"], "l", lazy.layout.grow_right(),
47 desc="Grow window to the right"),
48 Key([mod, "control"], "j", lazy.layout.grow_down(),
49 desc="Grow window down"),
50 Key([mod, "control"], "k", lazy.layout.grow_up(), desc="Grow window up"),
51 Key([mod], "n", lazy.layout.normalize(), desc="Reset all window sizes"),
52
53 Key([mod, "shift"], "Return", lazy.layout.toggle_split(),
54 desc="Toggle between split and unsplit sides of stack"),
55 Key([mod], "Return", lazy.spawn(terminal), desc="Launch terminal"),
56
57 Key([mod], "Tab", lazy.next_layout(), desc="Toggle between layouts"),
58 Key([mod], "c", lazy.window.kill(), desc="Kill focused window"),
59
60 Key([mod, "control"], "r", lazy.restart(), desc="Restart Qtile"),
61 Key([mod, "control"], "q", lazy.shutdown(), desc="Shutdown Qtile"),
62 Key([mod], "r", lazy.spawncmd(),
63 desc="Spawn a command using a prompt widget"),
64
65 Key([mod], "p", lazy.run_extension(extension.DmenuRun(
66 dmenu_prompt="$",
67 dmenu_bottom=False,
68 dmenu_lines=56,
69 background=BAR,
70 foreground=CYAN,
71 ))),
72
73 Key([mod, "mod1"], "q", lazy.spawn("qutebrowser"), desc="Spawn qutebrowser"),
74 Key([mod, "mod1"], "b", lazy.spawn("brave"), desc="Spawn brave"),
75 Key([mod, "mod1"], "e", lazy.spawn("emacs"), desc="Spawn emacs"),
76 Key([mod, "mod1"], "s", lazy.spawn("alacritty -e spt"), desc="Spawn spt (spotify clent)"),
77]
78groups_names = [
79 "dev",
80 "www",
81 "music",
82 "virt",
83 "sys",
84 "other"
85]
86
87groups = [Group(i) for i in groups_names]
88abc = 0
89for i in groups:
90 abc += 1
91 keys.extend([
92 Key([mod], str(abc), lazy.group[i.name].toscreen(),
93 desc="Switch to group {}".format(i.name)),
94
95 Key([mod, "shift"], str(abc), lazy.window.togroup(i.name, switch_group=True),
96 desc="Switch to & move focused window to group {}".format(i.name)),
97 ])
98
99
100layout_cfg = {
101 'border_width': 2,
102 'border_normal': "#bb8888",
103 'border_focus': "884444",
104 'margin': 8
105}
106
107layouts = [
108 layout.Columns(**layout_cfg),
109 # layout.Max(),
110 layout.Stack(num_stacks=1, **layout_cfg),
111 # layout.Bsp(),
112 # layout.Matrix(),
113 # layout.MonadTall(),
114 # layout.MonadWide(),
115 # layout.RatioTile(),
116 # layout.Tile(),
117 # layout.TreeTab(),
118 # layout.VerticalTile(),
119 # layout.Zoomy(),
120]
121
122widget_defaults = dict(
123 font='sans',
124 fontsize=12,
125 padding=6,
126)
127extension_defaults = widget_defaults.copy()
128
129transparent_sep = {
130 'foreground': BAR,
131 'margin': 2
132}
133
134soft_sep = {
135 'foreground': '44475a',
136 'padding': 2,
137 'margin': 4
138}
139
140screens = [
141 Screen(
142 top=bar.Bar(
143 [
144 widget.Sep(**transparent_sep),
145 widget.Image(filename="~/.config/qtile/python.png", margin=4),
146 widget.Sep(**transparent_sep),
147 widget.CurrentLayout(),
148 widget.Sep(**transparent_sep),
149 widget.GroupBox(),
150 widget.Prompt(),
151 widget.Sep(**transparent_sep),
152 widget.WindowName(),
153 widget.Net(format="↓{down} ↑{up}", foreground=YELLOW),
154 widget.Sep(**soft_sep),
155 widget.CPU(format='ï¡š {load_percent}%', fontsize=12, foreground=RED),
156 widget.Sep(**soft_sep),
157 widget.Battery(foreground=GREEN),
158 widget.Sep(**soft_sep),
159 widget.Clock(timezone='Europe/Warsaw', format='%B %-d, %H:%M', foreground=CYAN),
160 ],
161 24,
162 margin=8,
163 background=BAR,
164 border_color=CYAN,
165 border_width=1
166 ),
167 ),
168]
169
170mouse = [
171 Drag([mod], "Button1", lazy.window.set_position_floating(),
172 start=lazy.window.get_position()),
173 Drag([mod], "Button3", lazy.window.set_size_floating(),
174 start=lazy.window.get_size()),
175 Click([mod], "Button2", lazy.window.bring_to_front())
176]
177
178dgroups_key_binder = None
179dgroups_app_rules = [] # type: List
180follow_mouse_focus = True
181bring_front_click = False
182cursor_warp = False
183floating_layout = layout.Floating(float_rules=[
184 # Run the utility of `xprop` to see the wm class and name of an X client.
185 *layout.Floating.default_float_rules,
186 Match(wm_class='confirmreset'), # gitk
187 Match(wm_class='makebranch'), # gitk
188 Match(wm_class='maketag'), # gitk
189 Match(wm_class='ssh-askpass'), # ssh-askpass
190 Match(title='branchdialog'), # gitk
191 Match(title='pinentry'), # GPG key password entry
192])
193auto_fullscreen = True
194focus_on_window_activation = "smart"
195reconfigure_screens = True
196
197auto_minimize = True
198
199wmname = "LG3D"
diff --git a/qtile/python.png b/qtile/python.png
new file mode 100644
index 0000000..9a4b1ed
--- /dev/null
+++ b/qtile/python.png
Binary files differ