Minor edits.
This commit is contained in:
parent
06924eaefe
commit
4680c2e1ec
|
@ -40,36 +40,34 @@ myConfig = "/home/dt/.config/qtile/config.py" # The Qtile config file locatio
|
||||||
##### KEYBINDINGS #####
|
##### KEYBINDINGS #####
|
||||||
keys = [
|
keys = [
|
||||||
### The essentials
|
### The essentials
|
||||||
Key(
|
Key([mod], "Return",
|
||||||
[mod], "Return",
|
lazy.spawn(myTerm),
|
||||||
lazy.spawn(myTerm+" -e fish"),
|
desc='Launches My Terminal'
|
||||||
desc='Launches My Terminal With Fish Shell'
|
|
||||||
),
|
),
|
||||||
Key(
|
Key([mod, "shift"], "Return",
|
||||||
[mod, "shift"], "Return",
|
|
||||||
lazy.spawn("dmenu_run -p 'Run: '"),
|
lazy.spawn("dmenu_run -p 'Run: '"),
|
||||||
desc='Dmenu Run Launcher'
|
desc='Dmenu Run Launcher'
|
||||||
),
|
),
|
||||||
Key(
|
Key([mod], "Tab",
|
||||||
[mod], "Tab",
|
|
||||||
lazy.next_layout(),
|
lazy.next_layout(),
|
||||||
desc='Toggle through layouts'
|
desc='Toggle through layouts'
|
||||||
),
|
),
|
||||||
Key(
|
Key([mod, "shift"], "c",
|
||||||
[mod, "shift"], "c",
|
|
||||||
lazy.window.kill(),
|
lazy.window.kill(),
|
||||||
desc='Kill active window'
|
desc='Kill active window'
|
||||||
),
|
),
|
||||||
Key(
|
Key([mod, "shift"], "r",
|
||||||
[mod, "shift"], "r",
|
|
||||||
lazy.restart(),
|
lazy.restart(),
|
||||||
desc='Restart Qtile'
|
desc='Restart Qtile'
|
||||||
),
|
),
|
||||||
Key(
|
Key([mod, "shift"], "q",
|
||||||
[mod, "shift"], "q",
|
|
||||||
lazy.shutdown(),
|
lazy.shutdown(),
|
||||||
desc='Shutdown Qtile'
|
desc='Shutdown Qtile'
|
||||||
),
|
),
|
||||||
|
Key(["control", "shift"], "e",
|
||||||
|
lazy.spawn("emacsclient -c -a emacs"),
|
||||||
|
desc='Doom Emacs'
|
||||||
|
),
|
||||||
### Switch focus to specific monitor (out of three)
|
### Switch focus to specific monitor (out of three)
|
||||||
Key([mod], "w",
|
Key([mod], "w",
|
||||||
lazy.to_screen(0),
|
lazy.to_screen(0),
|
||||||
|
@ -102,169 +100,141 @@ keys = [
|
||||||
desc='Move down a section in treetab'
|
desc='Move down a section in treetab'
|
||||||
),
|
),
|
||||||
### Window controls
|
### Window controls
|
||||||
Key(
|
Key([mod], "k",
|
||||||
[mod], "k",
|
|
||||||
lazy.layout.down(),
|
lazy.layout.down(),
|
||||||
desc='Move focus down in current stack pane'
|
desc='Move focus down in current stack pane'
|
||||||
),
|
),
|
||||||
Key(
|
Key([mod], "j",
|
||||||
[mod], "j",
|
|
||||||
lazy.layout.up(),
|
lazy.layout.up(),
|
||||||
desc='Move focus up in current stack pane'
|
desc='Move focus up in current stack pane'
|
||||||
),
|
),
|
||||||
Key(
|
Key([mod, "shift"], "k",
|
||||||
[mod, "shift"], "k",
|
|
||||||
lazy.layout.shuffle_down(),
|
lazy.layout.shuffle_down(),
|
||||||
desc='Move windows down in current stack'
|
desc='Move windows down in current stack'
|
||||||
),
|
),
|
||||||
Key(
|
Key([mod, "shift"], "j",
|
||||||
[mod, "shift"], "j",
|
|
||||||
lazy.layout.shuffle_up(),
|
lazy.layout.shuffle_up(),
|
||||||
desc='Move windows up in current stack'
|
desc='Move windows up in current stack'
|
||||||
),
|
),
|
||||||
Key(
|
Key([mod], "h",
|
||||||
[mod], "h",
|
|
||||||
lazy.layout.grow(),
|
lazy.layout.grow(),
|
||||||
lazy.layout.increase_nmaster(),
|
lazy.layout.increase_nmaster(),
|
||||||
desc='Expand window (MonadTall), increase number in master pane (Tile)'
|
desc='Expand window (MonadTall), increase number in master pane (Tile)'
|
||||||
),
|
),
|
||||||
Key(
|
Key([mod], "l",
|
||||||
[mod], "l",
|
|
||||||
lazy.layout.shrink(),
|
lazy.layout.shrink(),
|
||||||
lazy.layout.decrease_nmaster(),
|
lazy.layout.decrease_nmaster(),
|
||||||
desc='Shrink window (MonadTall), decrease number in master pane (Tile)'
|
desc='Shrink window (MonadTall), decrease number in master pane (Tile)'
|
||||||
),
|
),
|
||||||
Key(
|
Key([mod], "n",
|
||||||
[mod], "n",
|
|
||||||
lazy.layout.normalize(),
|
lazy.layout.normalize(),
|
||||||
desc='normalize window size ratios'
|
desc='normalize window size ratios'
|
||||||
),
|
),
|
||||||
Key(
|
Key([mod], "m",
|
||||||
[mod], "m",
|
|
||||||
lazy.layout.maximize(),
|
lazy.layout.maximize(),
|
||||||
desc='toggle window between minimum and maximum sizes'
|
desc='toggle window between minimum and maximum sizes'
|
||||||
),
|
),
|
||||||
Key(
|
Key([mod, "shift"], "f",
|
||||||
[mod, "shift"], "f",
|
|
||||||
lazy.window.toggle_floating(),
|
lazy.window.toggle_floating(),
|
||||||
desc='toggle floating'
|
desc='toggle floating'
|
||||||
),
|
),
|
||||||
|
Key([mod, "shift"], "m",
|
||||||
|
lazy.window.toggle_fullscreen(),
|
||||||
|
desc='toggle fullscreen'
|
||||||
|
),
|
||||||
### Stack controls
|
### Stack controls
|
||||||
Key(
|
Key([mod, "shift"], "space",
|
||||||
[mod, "shift"], "space",
|
|
||||||
lazy.layout.rotate(),
|
lazy.layout.rotate(),
|
||||||
lazy.layout.flip(),
|
lazy.layout.flip(),
|
||||||
desc='Switch which side main pane occupies (XmonadTall)'
|
desc='Switch which side main pane occupies (XmonadTall)'
|
||||||
),
|
),
|
||||||
Key(
|
Key([mod], "space",
|
||||||
[mod], "space",
|
|
||||||
lazy.layout.next(),
|
lazy.layout.next(),
|
||||||
desc='Switch window focus to other pane(s) of stack'
|
desc='Switch window focus to other pane(s) of stack'
|
||||||
),
|
),
|
||||||
Key(
|
Key([mod, "control"], "Return",
|
||||||
[mod, "control"], "Return",
|
|
||||||
lazy.layout.toggle_split(),
|
lazy.layout.toggle_split(),
|
||||||
desc='Toggle between split and unsplit sides of stack'
|
desc='Toggle between split and unsplit sides of stack'
|
||||||
),
|
),
|
||||||
### Dmenu scripts launched with ALT + CTRL + KEY
|
### Dmenu scripts launched with ALT + CTRL + KEY
|
||||||
Key(
|
Key(["mod1", "control"], "e",
|
||||||
["mod1", "control"], "e",
|
|
||||||
lazy.spawn("./.dmenu/dmenu-edit-configs.sh"),
|
lazy.spawn("./.dmenu/dmenu-edit-configs.sh"),
|
||||||
desc='Dmenu script for editing config files'
|
desc='Dmenu script for editing config files'
|
||||||
),
|
),
|
||||||
Key(
|
Key(["mod1", "control"], "m",
|
||||||
["mod1", "control"], "m",
|
|
||||||
lazy.spawn("./.dmenu/dmenu-sysmon.sh"),
|
lazy.spawn("./.dmenu/dmenu-sysmon.sh"),
|
||||||
desc='Dmenu system monitor script'
|
desc='Dmenu system monitor script'
|
||||||
),
|
),
|
||||||
Key(
|
Key(["mod1", "control"], "p",
|
||||||
["mod1", "control"], "p",
|
|
||||||
lazy.spawn("passmenu"),
|
lazy.spawn("passmenu"),
|
||||||
desc='Passmenu'
|
desc='Passmenu'
|
||||||
),
|
),
|
||||||
Key(
|
Key(["mod1", "control"], "r",
|
||||||
["mod1", "control"], "r",
|
|
||||||
lazy.spawn("./.dmenu/dmenu-reddio.sh"),
|
lazy.spawn("./.dmenu/dmenu-reddio.sh"),
|
||||||
desc='Dmenu reddio script'
|
desc='Dmenu reddio script'
|
||||||
),
|
),
|
||||||
Key(
|
Key(["mod1", "control"], "s",
|
||||||
["mod1", "control"], "s",
|
|
||||||
lazy.spawn("./.dmenu/dmenu-surfraw.sh"),
|
lazy.spawn("./.dmenu/dmenu-surfraw.sh"),
|
||||||
desc='Dmenu surfraw script'
|
desc='Dmenu surfraw script'
|
||||||
),
|
),
|
||||||
Key(
|
Key(["mod1", "control"], "t",
|
||||||
["mod1", "control"], "t",
|
|
||||||
lazy.spawn("./.dmenu/dmenu-trading.sh"),
|
lazy.spawn("./.dmenu/dmenu-trading.sh"),
|
||||||
desc='Dmenu trading programs script'
|
desc='Dmenu trading programs script'
|
||||||
),
|
),
|
||||||
Key(
|
Key(["mod1", "control"], "i",
|
||||||
["mod1", "control"], "i",
|
|
||||||
lazy.spawn("./.dmenu/dmenu-scrot.sh"),
|
lazy.spawn("./.dmenu/dmenu-scrot.sh"),
|
||||||
desc='Dmenu scrot script'
|
desc='Dmenu scrot script'
|
||||||
),
|
),
|
||||||
### My applications launched with SUPER + ALT + KEY
|
### My applications launched with SUPER + ALT + KEY
|
||||||
Key(
|
Key([mod, "mod1"], "b",
|
||||||
[mod, "mod1"], "b",
|
|
||||||
lazy.spawn("tabbed -r 2 surf -pe x '.surf/html/homepage.html'"),
|
lazy.spawn("tabbed -r 2 surf -pe x '.surf/html/homepage.html'"),
|
||||||
desc='lynx browser'
|
desc='lynx browser'
|
||||||
),
|
),
|
||||||
Key(
|
Key([mod, "mod1"], "l",
|
||||||
[mod, "mod1"], "l",
|
|
||||||
lazy.spawn(myTerm+" -e lynx gopher://distro.tube"),
|
lazy.spawn(myTerm+" -e lynx gopher://distro.tube"),
|
||||||
desc='lynx browser'
|
desc='lynx browser'
|
||||||
),
|
),
|
||||||
Key(
|
Key([mod, "mod1"], "n",
|
||||||
[mod, "mod1"], "n",
|
|
||||||
lazy.spawn(myTerm+" -e newsboat"),
|
lazy.spawn(myTerm+" -e newsboat"),
|
||||||
desc='newsboat'
|
desc='newsboat'
|
||||||
),
|
),
|
||||||
Key(
|
Key([mod, "mod1"], "r",
|
||||||
[mod, "mod1"], "r",
|
|
||||||
lazy.spawn(myTerm+" -e rtv"),
|
lazy.spawn(myTerm+" -e rtv"),
|
||||||
desc='reddit terminal viewer'
|
desc='reddit terminal viewer'
|
||||||
),
|
),
|
||||||
Key(
|
Key([mod, "mod1"], "e",
|
||||||
[mod, "mod1"], "e",
|
|
||||||
lazy.spawn(myTerm+" -e neomutt"),
|
lazy.spawn(myTerm+" -e neomutt"),
|
||||||
desc='neomutt'
|
desc='neomutt'
|
||||||
),
|
),
|
||||||
Key(
|
Key([mod, "mod1"], "m",
|
||||||
[mod, "mod1"], "m",
|
|
||||||
lazy.spawn(myTerm+" -e sh ./scripts/toot.sh"),
|
lazy.spawn(myTerm+" -e sh ./scripts/toot.sh"),
|
||||||
desc='toot mastodon cli'
|
desc='toot mastodon cli'
|
||||||
),
|
),
|
||||||
Key(
|
Key([mod, "mod1"], "t",
|
||||||
[mod, "mod1"], "t",
|
|
||||||
lazy.spawn(myTerm+" -e sh ./scripts/tig-script.sh"),
|
lazy.spawn(myTerm+" -e sh ./scripts/tig-script.sh"),
|
||||||
desc='tig'
|
desc='tig'
|
||||||
),
|
),
|
||||||
Key(
|
Key([mod, "mod1"], "f",
|
||||||
[mod, "mod1"], "f",
|
|
||||||
lazy.spawn(myTerm+" -e sh ./.config/vifm/scripts/vifmrun"),
|
lazy.spawn(myTerm+" -e sh ./.config/vifm/scripts/vifmrun"),
|
||||||
desc='vifm'
|
desc='vifm'
|
||||||
),
|
),
|
||||||
Key(
|
Key([mod, "mod1"], "j",
|
||||||
[mod, "mod1"], "j",
|
|
||||||
lazy.spawn(myTerm+" -e joplin"),
|
lazy.spawn(myTerm+" -e joplin"),
|
||||||
desc='joplin'
|
desc='joplin'
|
||||||
),
|
),
|
||||||
Key(
|
Key([mod, "mod1"], "c",
|
||||||
[mod, "mod1"], "c",
|
|
||||||
lazy.spawn(myTerm+" -e cmus"),
|
lazy.spawn(myTerm+" -e cmus"),
|
||||||
desc='cmus'
|
desc='cmus'
|
||||||
),
|
),
|
||||||
Key(
|
Key([mod, "mod1"], "i",
|
||||||
[mod, "mod1"], "i",
|
|
||||||
lazy.spawn(myTerm+" -e irssi"),
|
lazy.spawn(myTerm+" -e irssi"),
|
||||||
desc='irssi'
|
desc='irssi'
|
||||||
),
|
),
|
||||||
Key(
|
Key([mod, "mod1"], "y",
|
||||||
[mod, "mod1"], "y",
|
|
||||||
lazy.spawn(myTerm+" -e youtube-viewer"),
|
lazy.spawn(myTerm+" -e youtube-viewer"),
|
||||||
desc='youtube-viewer'
|
desc='youtube-viewer'
|
||||||
),
|
),
|
||||||
Key(
|
Key([mod, "mod1"], "a",
|
||||||
[mod, "mod1"], "a",
|
|
||||||
lazy.spawn(myTerm+" -e ncpamixer"),
|
lazy.spawn(myTerm+" -e ncpamixer"),
|
||||||
desc='ncpamixer'
|
desc='ncpamixer'
|
||||||
),
|
),
|
||||||
|
@ -326,7 +296,7 @@ layouts = [
|
||||||
]
|
]
|
||||||
|
|
||||||
##### COLORS #####
|
##### COLORS #####
|
||||||
colors = [["#282a36", "#282a36"], # panel background
|
colors = [["#292d3e", "#292d3e"], # panel background
|
||||||
["#434758", "#434758"], # background for current screen tab
|
["#434758", "#434758"], # background for current screen tab
|
||||||
["#ffffff", "#ffffff"], # font color for group names
|
["#ffffff", "#ffffff"], # font color for group names
|
||||||
["#ff5555", "#ff5555"], # border line color for current tab
|
["#ff5555", "#ff5555"], # border line color for current tab
|
||||||
|
@ -350,89 +320,90 @@ extension_defaults = widget_defaults.copy()
|
||||||
|
|
||||||
def init_widgets_list():
|
def init_widgets_list():
|
||||||
widgets_list = [
|
widgets_list = [
|
||||||
widget.Sep(
|
widget.Sep(
|
||||||
linewidth = 0,
|
linewidth = 0,
|
||||||
padding = 6,
|
padding = 6,
|
||||||
foreground = colors[2],
|
foreground = colors[2],
|
||||||
background = colors[0]
|
background = colors[0]
|
||||||
),
|
),
|
||||||
widget.Image(
|
widget.Image(
|
||||||
filename = "~/.config/qtile/icons/python.png",
|
filename = "~/.config/qtile/icons/python.png",
|
||||||
mouse_callbacks = {'Button1': lambda qtile: qtile.cmd_spawn('dmenu_run')}
|
mouse_callbacks = {'Button1': lambda qtile: qtile.cmd_spawn('dmenu_run')}
|
||||||
),
|
),
|
||||||
widget.GroupBox(font="Ubuntu Bold",
|
widget.GroupBox(
|
||||||
fontsize = 9,
|
font = "Ubuntu Bold",
|
||||||
margin_y = 3,
|
fontsize = 9,
|
||||||
margin_x = 0,
|
margin_y = 3,
|
||||||
padding_y = 5,
|
margin_x = 0,
|
||||||
padding_x = 3,
|
padding_y = 5,
|
||||||
borderwidth = 3,
|
padding_x = 3,
|
||||||
active = colors[2],
|
borderwidth = 3,
|
||||||
inactive = colors[2],
|
active = colors[2],
|
||||||
rounded = False,
|
inactive = colors[2],
|
||||||
highlight_color = colors[1],
|
rounded = False,
|
||||||
highlight_method = "line",
|
highlight_color = colors[1],
|
||||||
this_current_screen_border = colors[3],
|
highlight_method = "line",
|
||||||
this_screen_border = colors [4],
|
this_current_screen_border = colors[3],
|
||||||
other_current_screen_border = colors[0],
|
this_screen_border = colors [4],
|
||||||
other_screen_border = colors[0],
|
other_current_screen_border = colors[0],
|
||||||
foreground = colors[2],
|
other_screen_border = colors[0],
|
||||||
background = colors[0]
|
foreground = colors[2],
|
||||||
),
|
background = colors[0]
|
||||||
widget.Prompt(
|
),
|
||||||
prompt=prompt,
|
widget.Prompt(
|
||||||
font="Ubuntu Mono",
|
prompt = prompt,
|
||||||
padding=10,
|
font = "Ubuntu Mono",
|
||||||
foreground = colors[3],
|
padding = 10,
|
||||||
background = colors[1]
|
foreground = colors[3],
|
||||||
),
|
background = colors[1]
|
||||||
widget.Sep(
|
),
|
||||||
linewidth = 0,
|
widget.Sep(
|
||||||
padding = 40,
|
linewidth = 0,
|
||||||
foreground = colors[2],
|
padding = 40,
|
||||||
background = colors[0]
|
foreground = colors[2],
|
||||||
),
|
background = colors[0]
|
||||||
widget.WindowName(
|
),
|
||||||
foreground = colors[6],
|
widget.WindowName(
|
||||||
background = colors[0],
|
foreground = colors[6],
|
||||||
padding = 0
|
background = colors[0],
|
||||||
),
|
padding = 0
|
||||||
widget.TextBox(
|
),
|
||||||
text='',
|
|
||||||
background = colors[0],
|
|
||||||
foreground = colors[4],
|
|
||||||
padding=0,
|
|
||||||
fontsize=37
|
|
||||||
),
|
|
||||||
widget.TextBox(
|
widget.TextBox(
|
||||||
text=" ₿",
|
text = '',
|
||||||
|
background = colors[0],
|
||||||
|
foreground = colors[4],
|
||||||
padding = 0,
|
padding = 0,
|
||||||
foreground=colors[2],
|
fontsize = 37
|
||||||
background=colors[4],
|
),
|
||||||
fontsize=12
|
widget.TextBox(
|
||||||
|
text = " ₿",
|
||||||
|
padding = 0,
|
||||||
|
foreground = colors[2],
|
||||||
|
background = colors[4],
|
||||||
|
fontsize = 12
|
||||||
),
|
),
|
||||||
widget.BitcoinTicker(
|
widget.BitcoinTicker(
|
||||||
foreground=colors[2],
|
foreground = colors[2],
|
||||||
background=colors[4],
|
background = colors[4],
|
||||||
padding = 5
|
padding = 5
|
||||||
),
|
),
|
||||||
widget.TextBox(
|
widget.TextBox(
|
||||||
text='',
|
text = '',
|
||||||
background = colors[4],
|
background = colors[4],
|
||||||
foreground = colors[5],
|
foreground = colors[5],
|
||||||
padding=0,
|
padding = 0,
|
||||||
fontsize=37
|
fontsize = 37
|
||||||
),
|
),
|
||||||
widget.TextBox(
|
widget.TextBox(
|
||||||
text=" 🌡",
|
text = " 🌡",
|
||||||
padding = 2,
|
padding = 2,
|
||||||
foreground=colors[2],
|
foreground = colors[2],
|
||||||
background=colors[5],
|
background = colors[5],
|
||||||
fontsize=11
|
fontsize = 11
|
||||||
),
|
),
|
||||||
widget.ThermalSensor(
|
widget.ThermalSensor(
|
||||||
foreground=colors[2],
|
foreground = colors[2],
|
||||||
background=colors[5],
|
background = colors[5],
|
||||||
threshold = 90,
|
threshold = 90,
|
||||||
padding = 5
|
padding = 5
|
||||||
),
|
),
|
||||||
|
@ -440,122 +411,122 @@ def init_widgets_list():
|
||||||
text='',
|
text='',
|
||||||
background = colors[5],
|
background = colors[5],
|
||||||
foreground = colors[4],
|
foreground = colors[4],
|
||||||
padding=0,
|
padding = 0,
|
||||||
fontsize=37
|
fontsize = 37
|
||||||
|
),
|
||||||
|
widget.TextBox(
|
||||||
|
text = " ⟳",
|
||||||
|
padding = 2,
|
||||||
|
foreground = colors[2],
|
||||||
|
background = colors[4],
|
||||||
|
fontsize = 14
|
||||||
|
),
|
||||||
|
widget.Pacman(
|
||||||
|
update_interval = 1800,
|
||||||
|
foreground = colors[2],
|
||||||
|
mouse_callbacks = {'Button1': lambda qtile: qtile.cmd_spawn(myTerm + ' -e sudo pacman -Syu')},
|
||||||
|
background = colors[4]
|
||||||
|
),
|
||||||
|
widget.TextBox(
|
||||||
|
text = "Updates",
|
||||||
|
padding = 5,
|
||||||
|
mouse_callbacks = {'Button1': lambda qtile: qtile.cmd_spawn(myTerm + ' -e sudo pacman -Syu')},
|
||||||
|
foreground = colors[2],
|
||||||
|
background = colors[4]
|
||||||
|
),
|
||||||
|
widget.TextBox(
|
||||||
|
text = '',
|
||||||
|
background = colors[4],
|
||||||
|
foreground = colors[5],
|
||||||
|
padding = 0,
|
||||||
|
fontsize = 37
|
||||||
|
),
|
||||||
|
widget.TextBox(
|
||||||
|
text = " 🖬",
|
||||||
|
foreground = colors[2],
|
||||||
|
background = colors[5],
|
||||||
|
padding = 0,
|
||||||
|
fontsize = 14
|
||||||
|
),
|
||||||
|
widget.Memory(
|
||||||
|
foreground = colors[2],
|
||||||
|
background = colors[5],
|
||||||
|
mouse_callbacks = {'Button1': lambda qtile: qtile.cmd_spawn(myTerm + ' -e htop')},
|
||||||
|
padding = 5
|
||||||
|
),
|
||||||
|
widget.TextBox(
|
||||||
|
text='',
|
||||||
|
background = colors[5],
|
||||||
|
foreground = colors[4],
|
||||||
|
padding = 0,
|
||||||
|
fontsize = 37
|
||||||
|
),
|
||||||
|
widget.Net(
|
||||||
|
interface = "enp6s0",
|
||||||
|
format = '{down} ↓↑ {up}',
|
||||||
|
foreground = colors[2],
|
||||||
|
background = colors[4],
|
||||||
|
padding = 5
|
||||||
|
),
|
||||||
|
widget.TextBox(
|
||||||
|
text = '',
|
||||||
|
background = colors[4],
|
||||||
|
foreground = colors[5],
|
||||||
|
padding = 0,
|
||||||
|
fontsize = 37
|
||||||
|
),
|
||||||
|
widget.TextBox(
|
||||||
|
text = " Vol:",
|
||||||
|
foreground = colors[2],
|
||||||
|
background = colors[5],
|
||||||
|
padding = 0
|
||||||
|
),
|
||||||
|
widget.Volume(
|
||||||
|
foreground = colors[2],
|
||||||
|
background = colors[5],
|
||||||
|
padding = 5
|
||||||
|
),
|
||||||
|
widget.TextBox(
|
||||||
|
text = '',
|
||||||
|
background = colors[5],
|
||||||
|
foreground = colors[4],
|
||||||
|
padding = 0,
|
||||||
|
fontsize = 37
|
||||||
|
),
|
||||||
|
widget.CurrentLayoutIcon(
|
||||||
|
custom_icon_paths = [os.path.expanduser("~/.config/qtile/icons")],
|
||||||
|
foreground = colors[0],
|
||||||
|
background = colors[4],
|
||||||
|
padding = 0,
|
||||||
|
scale = 0.7
|
||||||
|
),
|
||||||
|
widget.CurrentLayout(
|
||||||
|
foreground = colors[2],
|
||||||
|
background = colors[4],
|
||||||
|
padding = 5
|
||||||
|
),
|
||||||
|
widget.TextBox(
|
||||||
|
text = '',
|
||||||
|
background = colors[4],
|
||||||
|
foreground = colors[5],
|
||||||
|
padding = 0,
|
||||||
|
fontsize = 37
|
||||||
|
),
|
||||||
|
widget.Clock(
|
||||||
|
foreground = colors[2],
|
||||||
|
background = colors[5],
|
||||||
|
format = "%A, %B %d [ %H:%M ]"
|
||||||
|
),
|
||||||
|
widget.Sep(
|
||||||
|
linewidth = 0,
|
||||||
|
padding = 10,
|
||||||
|
foreground = colors[0],
|
||||||
|
background = colors[5]
|
||||||
|
),
|
||||||
|
widget.Systray(
|
||||||
|
background = colors[0],
|
||||||
|
padding = 5
|
||||||
),
|
),
|
||||||
widget.TextBox(
|
|
||||||
text=" ⟳",
|
|
||||||
padding = 2,
|
|
||||||
foreground=colors[2],
|
|
||||||
background=colors[4],
|
|
||||||
fontsize=14
|
|
||||||
),
|
|
||||||
widget.Pacman(
|
|
||||||
update_interval = 1800,
|
|
||||||
foreground = colors[2],
|
|
||||||
mouse_callbacks = {'Button1': lambda qtile: qtile.cmd_spawn(myTerm + ' -e sudo pacman -Syu')},
|
|
||||||
background = colors[4]
|
|
||||||
),
|
|
||||||
widget.TextBox(
|
|
||||||
text="Updates",
|
|
||||||
padding = 5,
|
|
||||||
mouse_callbacks = {'Button1': lambda qtile: qtile.cmd_spawn(myTerm + ' -e sudo pacman -Syu')},
|
|
||||||
foreground=colors[2],
|
|
||||||
background=colors[4]
|
|
||||||
),
|
|
||||||
widget.TextBox(
|
|
||||||
text='',
|
|
||||||
background = colors[4],
|
|
||||||
foreground = colors[5],
|
|
||||||
padding=0,
|
|
||||||
fontsize=37
|
|
||||||
),
|
|
||||||
widget.TextBox(
|
|
||||||
text=" 🖬",
|
|
||||||
foreground=colors[2],
|
|
||||||
background=colors[5],
|
|
||||||
padding = 0,
|
|
||||||
fontsize=14
|
|
||||||
),
|
|
||||||
widget.Memory(
|
|
||||||
foreground = colors[2],
|
|
||||||
background = colors[5],
|
|
||||||
mouse_callbacks = {'Button1': lambda qtile: qtile.cmd_spawn(myTerm + ' -e htop')},
|
|
||||||
padding = 5
|
|
||||||
),
|
|
||||||
widget.TextBox(
|
|
||||||
text='',
|
|
||||||
background = colors[5],
|
|
||||||
foreground = colors[4],
|
|
||||||
padding=0,
|
|
||||||
fontsize=37
|
|
||||||
),
|
|
||||||
widget.Net(
|
|
||||||
interface = "enp6s0",
|
|
||||||
format = '{down} ↓↑ {up}',
|
|
||||||
foreground = colors[2],
|
|
||||||
background = colors[4],
|
|
||||||
padding = 5
|
|
||||||
),
|
|
||||||
widget.TextBox(
|
|
||||||
text='',
|
|
||||||
background = colors[4],
|
|
||||||
foreground = colors[5],
|
|
||||||
padding=0,
|
|
||||||
fontsize=37
|
|
||||||
),
|
|
||||||
widget.TextBox(
|
|
||||||
text=" Vol:",
|
|
||||||
foreground=colors[2],
|
|
||||||
background=colors[5],
|
|
||||||
padding = 0
|
|
||||||
),
|
|
||||||
widget.Volume(
|
|
||||||
foreground = colors[2],
|
|
||||||
background = colors[5],
|
|
||||||
padding = 5
|
|
||||||
),
|
|
||||||
widget.TextBox(
|
|
||||||
text='',
|
|
||||||
background = colors[5],
|
|
||||||
foreground = colors[4],
|
|
||||||
padding=0,
|
|
||||||
fontsize=37
|
|
||||||
),
|
|
||||||
widget.CurrentLayoutIcon(
|
|
||||||
custom_icon_paths=[os.path.expanduser("~/.config/qtile/icons")],
|
|
||||||
foreground = colors[0],
|
|
||||||
background = colors[4],
|
|
||||||
padding = 0,
|
|
||||||
scale=0.7
|
|
||||||
),
|
|
||||||
widget.CurrentLayout(
|
|
||||||
foreground = colors[2],
|
|
||||||
background = colors[4],
|
|
||||||
padding = 5
|
|
||||||
),
|
|
||||||
widget.TextBox(
|
|
||||||
text='',
|
|
||||||
background = colors[4],
|
|
||||||
foreground = colors[5],
|
|
||||||
padding=0,
|
|
||||||
fontsize=37
|
|
||||||
),
|
|
||||||
widget.Clock(
|
|
||||||
foreground = colors[2],
|
|
||||||
background = colors[5],
|
|
||||||
format="%A, %B %d [ %H:%M ]"
|
|
||||||
),
|
|
||||||
widget.Sep(
|
|
||||||
linewidth = 0,
|
|
||||||
padding = 10,
|
|
||||||
foreground = colors[0],
|
|
||||||
background = colors[5]
|
|
||||||
),
|
|
||||||
widget.Systray(
|
|
||||||
background=colors[0],
|
|
||||||
padding = 5
|
|
||||||
),
|
|
||||||
]
|
]
|
||||||
return widgets_list
|
return widgets_list
|
||||||
|
|
||||||
|
@ -570,9 +541,9 @@ def init_widgets_screen2():
|
||||||
return widgets_screen2 # Monitor 2 will display all widgets in widgets_list
|
return widgets_screen2 # Monitor 2 will display all widgets in widgets_list
|
||||||
|
|
||||||
def init_screens():
|
def init_screens():
|
||||||
return [Screen(top=bar.Bar(widgets=init_widgets_screen1(), opacity=0.95, size=20)),
|
return [Screen(top=bar.Bar(widgets=init_widgets_screen1(), opacity=1.0, size=20)),
|
||||||
Screen(top=bar.Bar(widgets=init_widgets_screen2(), opacity=0.95, size=20)),
|
Screen(top=bar.Bar(widgets=init_widgets_screen2(), opacity=1.0, size=20)),
|
||||||
Screen(top=bar.Bar(widgets=init_widgets_screen1(), opacity=0.95, size=20))]
|
Screen(top=bar.Bar(widgets=init_widgets_screen1(), opacity=1.0, size=20))]
|
||||||
|
|
||||||
if __name__ in ["config", "__main__"]:
|
if __name__ in ["config", "__main__"]:
|
||||||
screens = init_screens()
|
screens = init_screens()
|
||||||
|
|
|
@ -148,4 +148,4 @@ case "$choice" in
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
alacritty -e nvim "$choice"
|
emacsclient -c -a emacs "$choice"
|
||||||
|
|
|
@ -1,233 +1,37 @@
|
||||||
;;; $DOOMDIR/config.el -*- lexical-binding: t; -*-
|
|
||||||
|
|
||||||
;; Place your private configuration here! Remember, you do not need to run 'doom
|
|
||||||
;; sync' after modifying this file!
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
;; START OF EXWM CONFIG ;;
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
|
|
||||||
;; Disable menu-bar, tool-bar and scroll-bar to increase the usable space.
|
|
||||||
(menu-bar-mode -1)
|
|
||||||
(tool-bar-mode -1)
|
|
||||||
(scroll-bar-mode -1)
|
|
||||||
;; Also shrink fringes to 1 pixel.
|
|
||||||
(fringe-mode 1)
|
|
||||||
|
|
||||||
;; Turn on `display-time-mode' if you don't use an external bar.
|
|
||||||
(setq display-time-default-load-average nil)
|
|
||||||
(display-time-mode t)
|
|
||||||
|
|
||||||
;; You are strongly encouraged to enable something like `ido-mode' to alter
|
|
||||||
;; the default behavior of 'C-x b', or you will take great pains to switch
|
|
||||||
;; to or back from a floating frame (remember 'C-x 5 o' if you refuse this
|
|
||||||
;; proposal however).
|
|
||||||
;; You may also want to call `exwm-config-ido' later (see below).
|
|
||||||
(ido-mode 1)
|
|
||||||
|
|
||||||
;; Emacs server is not required to run EXWM but it has some interesting uses
|
|
||||||
;; (see next section).
|
|
||||||
(server-start)
|
|
||||||
|
|
||||||
;;;; Below are configurations for EXWM.
|
|
||||||
|
|
||||||
;; Add paths (not required if EXWM is installed from GNU ELPA).
|
|
||||||
;(add-to-list 'load-path "/path/to/xelb/")
|
|
||||||
;(add-to-list 'load-path "/path/to/exwm/")
|
|
||||||
|
|
||||||
;; Load EXWM.
|
|
||||||
(require 'exwm)
|
|
||||||
|
|
||||||
;; Fix problems with Ido (if you use it).
|
|
||||||
(require 'exwm-config)
|
|
||||||
(exwm-config-ido)
|
|
||||||
|
|
||||||
;; Set the initial number of workspaces (they can also be created later).
|
|
||||||
(setq exwm-workspace-number 10)
|
|
||||||
|
|
||||||
(require 'exwm-randr)
|
|
||||||
(setq exwm-randr-workspace-monitor-plist '(0 "DisplayPort-0" 1 "DisplayPort-1" 2 "HDMI-A-0"))
|
|
||||||
(add-hook 'exwm-randr-screen-change-hook
|
|
||||||
(lambda ()
|
|
||||||
(start-process-shell-command
|
|
||||||
"xrandr" nil "xrandr --output DisplayPort-0 --mode 1920x1080 --pos 0x0 --rotate normal --output DisplayPort-1 --primary --mode 1920x1080 --pos 1920x0 --rotate normal --output HDMI-A-0 --mode 1920x1080 --pos 3840x0 --rotate normal")))
|
|
||||||
(exwm-randr-enable)
|
|
||||||
|
|
||||||
(require 'exwm-systemtray)
|
|
||||||
(exwm-systemtray-enable)
|
|
||||||
|
|
||||||
;; All buffers created in EXWM mode are named "*EXWM*". You may want to
|
|
||||||
;; change it in `exwm-update-class-hook' and `exwm-update-title-hook', which
|
|
||||||
;; are run when a new X window class name or title is available. Here's
|
|
||||||
;; some advice on this topic:
|
|
||||||
;; + Always use `exwm-workspace-rename-buffer` to avoid naming conflict.
|
|
||||||
;; + For applications with multiple windows (e.g. GIMP), the class names of
|
|
||||||
; all windows are probably the same. Using window titles for them makes
|
|
||||||
;; more sense.
|
|
||||||
;; In the following example, we use class names for all windows except for
|
|
||||||
;; Java applications and GIMP.
|
|
||||||
(add-hook 'exwm-update-class-hook
|
|
||||||
(lambda ()
|
|
||||||
(unless (or (string-prefix-p "sun-awt-X11-" exwm-instance-name)
|
|
||||||
(string= "gimp" exwm-instance-name))
|
|
||||||
(exwm-workspace-rename-buffer exwm-class-name))))
|
|
||||||
(add-hook 'exwm-update-title-hook
|
|
||||||
(lambda ()
|
|
||||||
(when (or (not exwm-instance-name)
|
|
||||||
(string-prefix-p "sun-awt-X11-" exwm-instance-name)
|
|
||||||
(string= "gimp" exwm-instance-name))
|
|
||||||
(exwm-workspace-rename-buffer exwm-title))))
|
|
||||||
|
|
||||||
;; Global keybindings can be defined with `exwm-input-global-keys'.
|
|
||||||
;; Here are a few examples:
|
|
||||||
(setq exwm-input-global-keys
|
|
||||||
`(
|
|
||||||
;; Bind "s-r" to exit char-mode and fullscreen mode.
|
|
||||||
([?\s-r] . exwm-reset)
|
|
||||||
;; Bind "s-w" to switch workspace interactively.
|
|
||||||
([?\s-w] . exwm-workspace-switch)
|
|
||||||
;; Bind "s-0" to "s-9" to switch to a workspace by its index.
|
|
||||||
,@(mapcar (lambda (i)
|
|
||||||
`(,(kbd (format "s-%d" i)) .
|
|
||||||
(lambda ()
|
|
||||||
(interactive)
|
|
||||||
(exwm-workspace-switch-create ,i))))
|
|
||||||
(number-sequence 0 9))
|
|
||||||
;; Bind "s-&" to launch applications ('M-&' also works if the output
|
|
||||||
;; buffer does not bother you).
|
|
||||||
([?\s-&] . (lambda (command)
|
|
||||||
(interactive (list (read-shell-command "$ ")))
|
|
||||||
(start-process-shell-command command nil command)))
|
|
||||||
([s-return] . (lambda ()
|
|
||||||
(interactive)
|
|
||||||
(start-process "" nil "alacritty")))
|
|
||||||
([?\s-p] . (lambda ()
|
|
||||||
(interactive)
|
|
||||||
(start-process "" nil "dmenu_run")))
|
|
||||||
([?\s-f] . (lambda ()
|
|
||||||
(interactive)
|
|
||||||
(start-process "" nil "firefox")))
|
|
||||||
([s-f2] . (lambda ()
|
|
||||||
(interactive)
|
|
||||||
(start-process "" nil "/usr/bin/slock")))))
|
|
||||||
|
|
||||||
;; To add a key binding only available in line-mode, simply define it in
|
|
||||||
;; `exwm-mode-map'. The following example shortens 'C-c q' to 'C-q'.
|
|
||||||
(define-key exwm-mode-map [?\C-q] #'exwm-input-send-next-key)
|
|
||||||
|
|
||||||
;; The following example demonstrates how to use simulation keys to mimic
|
|
||||||
;; the behavior of Emacs. The value of `exwm-input-simulation-keys` is a
|
|
||||||
;; list of cons cells (SRC . DEST), where SRC is the key sequence you press
|
|
||||||
;; and DEST is what EXWM actually sends to application. Note that both SRC
|
|
||||||
;; and DEST should be key sequences (vector or string).
|
|
||||||
(setq exwm-input-simulation-keys
|
|
||||||
'(
|
|
||||||
;; movement
|
|
||||||
([?\C-b] . [left])
|
|
||||||
([?\M-b] . [C-left])
|
|
||||||
([?\C-f] . [right])
|
|
||||||
([?\M-f] . [C-right])
|
|
||||||
([?\C-p] . [up])
|
|
||||||
([?\C-n] . [down])
|
|
||||||
([?\C-a] . [home])
|
|
||||||
([?\C-e] . [end])
|
|
||||||
([?\M-v] . [prior])
|
|
||||||
([?\C-v] . [next])
|
|
||||||
([?\C-d] . [delete])
|
|
||||||
([?\C-k] . [S-end delete])
|
|
||||||
;; cut/paste.
|
|
||||||
([?\C-w] . [?\C-x])
|
|
||||||
([?\M-w] . [?\C-c])
|
|
||||||
([?\C-y] . [?\C-v])
|
|
||||||
;; search
|
|
||||||
([?\C-s] . [?\C-f])))
|
|
||||||
|
|
||||||
;; You can hide the minibuffer and echo area when they're not used, by
|
|
||||||
;; uncommenting the following line.
|
|
||||||
;(setq exwm-workspace-minibuffer-position 'bottom)
|
|
||||||
|
|
||||||
;; Do not forget to enable EXWM. It will start by itself when things are
|
|
||||||
;; ready. You can put it _anywhere_ in your configuration.
|
|
||||||
(exwm-enable)
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
;; END OF EXWM CONFIG ;;
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
|
|
||||||
;; Doom exposes five (optional) variables for controlling fonts in Doom. Here
|
|
||||||
;; are the three important ones:
|
|
||||||
;;
|
|
||||||
;; + `doom-font'
|
|
||||||
;; + `doom-variable-pitch-font'
|
|
||||||
;; + `doom-big-font' -- used for `doom-big-font-mode'; use this for
|
|
||||||
;; presentations or streaming.
|
|
||||||
;;
|
|
||||||
;; They all accept either a font-spec, font string ("Input Mono-12"), or xlfd
|
|
||||||
;; font string. You generally only need these two:
|
|
||||||
(setq doom-font (font-spec :family "Mononoki Nerd Font" :size 15)
|
(setq doom-font (font-spec :family "Mononoki Nerd Font" :size 15)
|
||||||
doom-variable-pitch-font (font-spec :family "Mononoki Nerd Font" :size 15))
|
doom-variable-pitch-font (font-spec :family "Mononoki Nerd Font" :size 15))
|
||||||
|
|
||||||
;; There are two ways to load a theme. Both assume the theme is installed and
|
|
||||||
;; available. You can either set `doom-theme' or manually load a theme with the
|
|
||||||
;; `load-theme' function. This is the default:
|
|
||||||
(setq doom-theme 'doom-palenight)
|
(setq doom-theme 'doom-palenight)
|
||||||
|
|
||||||
;; If you use `org' and don't want your org files in the default location below,
|
|
||||||
;; change `org-directory'. It must be set before org loads!
|
|
||||||
(setq org-directory "~/Documents/org/")
|
(setq org-directory "~/Documents/org/")
|
||||||
|
|
||||||
;; This determines the style of line numbers in effect. If set to `nil', line
|
|
||||||
;; numbers are disabled. For relative line numbers, set this to `relative'.
|
|
||||||
(setq display-line-numbers-type t)
|
(setq display-line-numbers-type t)
|
||||||
|
|
||||||
;; Setting the neotree width to be adjustable.
|
|
||||||
(setq neo-window-fixed-size nil)
|
|
||||||
|
|
||||||
;; Sets binding to toggle line wrap on/off.
|
|
||||||
(global-set-key "\C-x\ t" 'toggle-truncate-lines)
|
(global-set-key "\C-x\ t" 'toggle-truncate-lines)
|
||||||
|
|
||||||
;; Sets binding to launch elfeed
|
(setq neo-window-fixed-size nil)
|
||||||
(global-set-key (kbd "s-a") 'emms)
|
|
||||||
(global-set-key (kbd "s-b") 'ibuffer)
|
|
||||||
(global-set-key (kbd "s-d") 'dired)
|
|
||||||
(global-set-key (kbd "s-m") 'mu4e)
|
|
||||||
(global-set-key (kbd "s-n") 'elfeed)
|
|
||||||
(global-set-key (kbd "s-s") 'eshell)
|
|
||||||
|
|
||||||
;; Set browser to eww
|
|
||||||
(setq browse-url-browser-function 'eww-browse-url)
|
(setq browse-url-browser-function 'eww-browse-url)
|
||||||
|
|
||||||
;; Force splits to open on the right
|
|
||||||
(defun prefer-horizontal-split ()
|
(defun prefer-horizontal-split ()
|
||||||
(set-variable 'split-height-threshold nil t)
|
(set-variable 'split-height-threshold nil t)
|
||||||
(set-variable 'split-width-threshold 40 t)) ; make this as low as needed
|
(set-variable 'split-width-threshold 40 t)) ; make this as low as needed
|
||||||
(add-hook 'markdown-mode-hook 'prefer-horizontal-split)
|
(add-hook 'markdown-mode-hook 'prefer-horizontal-split)
|
||||||
|
|
||||||
;; Image previews in dired
|
(map!
|
||||||
(global-set-key (kbd "C-x i") 'peep-dired)
|
(:after dired
|
||||||
|
(:map dired-mode-map
|
||||||
|
"C-x i" #'peep-dired
|
||||||
|
)))
|
||||||
(evil-define-key 'normal peep-dired-mode-map (kbd "j") 'peep-dired-next-file
|
(evil-define-key 'normal peep-dired-mode-map (kbd "j") 'peep-dired-next-file
|
||||||
(kbd "k") 'peep-dired-prev-file)
|
(kbd "k") 'peep-dired-prev-file)
|
||||||
(add-hook 'peep-dired-hook 'evil-normalize-keymaps)
|
(add-hook 'peep-dired-hook 'evil-normalize-keymaps)
|
||||||
|
|
||||||
;; Sets transparency for focuses and unfocused frames.
|
|
||||||
;; (set-frame-parameter (selected-frame) 'alpha '(95 . 80))
|
|
||||||
;; (add-to-list 'default-frame-alist '(alpha . (95 . 80)))
|
|
||||||
|
|
||||||
;; Setting the indent guides to show a pipe character.
|
|
||||||
;; (def-package! highlight-indent-guides
|
|
||||||
;; :commands highlight-indent-guides-mode
|
|
||||||
;; :hook (prog-mode . highlight-indent-guides-mode)
|
|
||||||
;; :config
|
|
||||||
;; (setq highlight-indent-guides-method 'character
|
|
||||||
;; highlight-indent-guides-character ?\|
|
|
||||||
;; highlight-indent-guides-delay 0.01
|
|
||||||
;; highlight-indent-guides-responsive 'top
|
|
||||||
;; highlight-indent-guides-auto-enabled nil))
|
|
||||||
(use-package emms
|
(use-package emms
|
||||||
:ensure t
|
:ensure t
|
||||||
:config
|
:config
|
||||||
(require 'emms-setup)
|
(require 'emms-setup)
|
||||||
(require 'emms-info)
|
(require 'emms-info)
|
||||||
(require 'emms-cue) ;; Required for processing flacs.
|
(require 'emms-cue)
|
||||||
(require 'emms-mode-line)
|
(require 'emms-mode-line)
|
||||||
(require 'emms-playing-time)
|
(require 'emms-playing-time)
|
||||||
(setq emms-source-file-default-directory "~/Music/Non-Classical/70s-80s/")
|
(setq emms-source-file-default-directory "~/Music/Non-Classical/70s-80s/")
|
||||||
|
@ -241,20 +45,10 @@
|
||||||
(emms-mode-line 1)
|
(emms-mode-line 1)
|
||||||
(emms-playing-time 1))
|
(emms-playing-time 1))
|
||||||
|
|
||||||
|
|
||||||
;; Setting up mu4e which is an email client that works within emacs.
|
|
||||||
;; You must install mu4e and mbsync through your Linux distribution's
|
|
||||||
;; package manager.
|
|
||||||
|
|
||||||
;; Adding path to mu4e
|
|
||||||
(add-to-list 'load-path "/usr/local/share/emacs/site-lisp/mu4e")
|
(add-to-list 'load-path "/usr/local/share/emacs/site-lisp/mu4e")
|
||||||
|
|
||||||
(require 'mu4e)
|
(require 'mu4e)
|
||||||
(setq mu4e-get-mail-command "mbsync -c ~/.emacs.d/mu4e/.mbsyncrc -a"
|
(setq mu4e-get-mail-command "mbsync -c ~/.emacs.d/mu4e/.mbsyncrc -a"
|
||||||
mu4e-update-interval 300)
|
mu4e-update-interval 300)
|
||||||
|
|
||||||
;; Fields that are auto-filled in email such as the full name of the
|
|
||||||
;; sender, the salutation and signature.
|
|
||||||
(setq
|
(setq
|
||||||
user-mail-address "derek@distrotube.com"
|
user-mail-address "derek@distrotube.com"
|
||||||
user-full-name "Derek Taylor"
|
user-full-name "Derek Taylor"
|
||||||
|
@ -262,10 +56,6 @@
|
||||||
(concat
|
(concat
|
||||||
"Derek Taylor\n"
|
"Derek Taylor\n"
|
||||||
"http://www.youtube.com/DistroTube\n"))
|
"http://www.youtube.com/DistroTube\n"))
|
||||||
|
|
||||||
;; Setting up smtp for sending mail. Make sure the gnutls command
|
|
||||||
;; line utils are installed. Package 'gnutls-bin' in Debian/Ubuntu,
|
|
||||||
;; and 'gnutls' in Arch.
|
|
||||||
(require 'smtpmail)
|
(require 'smtpmail)
|
||||||
(setq message-send-mail-function 'smtpmail-send-it
|
(setq message-send-mail-function 'smtpmail-send-it
|
||||||
starttls-use-gnutls t
|
starttls-use-gnutls t
|
||||||
|
@ -276,37 +66,29 @@
|
||||||
smtpmail-smtp-server "smtp.1and1.com"
|
smtpmail-smtp-server "smtp.1and1.com"
|
||||||
smtpmail-smtp-service 587)
|
smtpmail-smtp-service 587)
|
||||||
|
|
||||||
|
(setq mastodon-instance-url "https://mastodon.technology")
|
||||||
;; Here are some additional functions/macros that could help you configure Doom:
|
|
||||||
;;
|
|
||||||
;; - `load!' for loading external *.el files relative to this one
|
|
||||||
;; - `use-package!' for configuring packages
|
|
||||||
;; - `after!' for running code after a package has loaded
|
|
||||||
;; - `add-load-path!' for adding directories to the `load-path', relative to
|
|
||||||
;; this file. Emacs searches the `load-path' when you load packages with
|
|
||||||
;; `require' or `use-package'.
|
|
||||||
;; - `map!' for binding new keys
|
|
||||||
;;
|
|
||||||
;; To get information about any of these functions/macros, move the cursor over
|
|
||||||
;; the highlighted symbol at press 'K' (non-evil users must press 'C-c c k').
|
|
||||||
;; This will open documentation for it, including demos of how they are used.
|
|
||||||
;;
|
|
||||||
;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how
|
|
||||||
;; they are implemented.
|
|
||||||
|
|
||||||
(custom-set-variables
|
(custom-set-variables
|
||||||
;; custom-set-variables was added by Custom.
|
|
||||||
;; If you edit it by hand, you could mess it up, so be careful.
|
|
||||||
;; Your init file should contain only one such instance.
|
|
||||||
;; If there is more than one, they won't work right.
|
|
||||||
'(elfeed-feeds
|
'(elfeed-feeds
|
||||||
(quote
|
(quote
|
||||||
("https://www.gamingonlinux.com/article_rss.php" "https://hackaday.com/blog/feed/" "https://opensource.com/feed" "https://linux.softpedia.com/backend.xml" "https://itsfoss.com/feed/" "https://www.zdnet.com/topic/linux/rss.xml" "https://www.phoronix.com/rss.php" "http://feeds.feedburner.com/d0od" "https://www.computerworld.com/index.rss" "https://www.networkworld.com/category/linux/index.rss" "https://www.techrepublic.com/rssfeeds/topic/open-source/" "https://betanews.com/feed" "http://lxer.com/module/newswire/headlines.rss" "https://distrowatch.com/news/dwd.xml")))
|
(("https://www.reddit.com/r/linux.rss" reddit linux)
|
||||||
'(package-selected-packages (quote (exwm peep-dired nav-flash evil-mu4e emms elfeed))))
|
("https://www.gamingonlinux.com/article_rss.php" gaming linux)
|
||||||
|
("https://hackaday.com/blog/feed/" hackaday linux)
|
||||||
|
("https://opensource.com/feed" opensource linux)
|
||||||
|
("https://linux.softpedia.com/backend.xml" softpedia linux)
|
||||||
|
("https://itsfoss.com/feed/" itsfoss linux)
|
||||||
|
("https://www.zdnet.com/topic/linux/rss.xml" zdnet linux)
|
||||||
|
("https://www.phoronix.com/rss.php" phoronix linux)
|
||||||
|
("http://feeds.feedburner.com/d0od" omgubuntu linux)
|
||||||
|
("https://www.computerworld.com/index.rss" computerworld linux)
|
||||||
|
("https://www.networkworld.com/category/linux/index.rss" networkworld linux)
|
||||||
|
("https://www.techrepublic.com/rssfeeds/topic/open-source/" techrepublic linux)
|
||||||
|
("https://betanews.com/feed" betanews linux)
|
||||||
|
("http://lxer.com/module/newswire/headlines.rss" lxer linux)
|
||||||
|
("https://distrowatch.com/news/dwd.xml" distrowatch linux))))
|
||||||
|
'(package-selected-packages
|
||||||
|
(quote
|
||||||
|
(mastodon exwm peep-dired nav-flash evil-mu4e emms elfeed))))
|
||||||
|
|
||||||
(custom-set-faces
|
(custom-set-faces
|
||||||
;; custom-set-faces was added by Custom.
|
|
||||||
;; If you edit it by hand, you could mess it up, so be careful.
|
|
||||||
;; Your init file should contain only one such instance.
|
|
||||||
;; If there is more than one, they won't work right.
|
|
||||||
)
|
)
|
||||||
|
|
|
@ -0,0 +1,158 @@
|
||||||
|
#+TITLE: DT's Doom Emacs Config
|
||||||
|
#+AUTHOR: Derek Taylor (DT)
|
||||||
|
|
||||||
|
** FONTS
|
||||||
|
Doom exposes five (optional) variables for controlling fonts in Doom. Here
|
||||||
|
are the three important ones:
|
||||||
|
|
||||||
|
+ `doom-font'
|
||||||
|
+ `doom-variable-pitch-font'
|
||||||
|
+ `doom-big-font' -- used for `doom-big-font-mode'; use this for
|
||||||
|
presentations or streaming.
|
||||||
|
|
||||||
|
They all accept either a font-spec, font string ("Input Mono-12"), or xlfd
|
||||||
|
font string. You generally only need these two:
|
||||||
|
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(setq doom-font (font-spec :family "Mononoki Nerd Font" :size 15)
|
||||||
|
doom-variable-pitch-font (font-spec :family "Mononoki Nerd Font" :size 15))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
** DOOM THEME
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(setq doom-theme 'doom-palenight)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
** ORG MODE
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(setq org-directory "~/Documents/org/")
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
** LINE SETTINGS
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(setq display-line-numbers-type t)
|
||||||
|
(global-set-key "\C-x\ t" 'toggle-truncate-lines)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
** NEOTREE
|
||||||
|
Setting the neotree width to be adjustable.
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(setq neo-window-fixed-size nil)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
** BROWSER (eww)
|
||||||
|
Set urls to open in a specific browser.
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(setq browse-url-browser-function 'eww-browse-url)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
** SPLITS
|
||||||
|
Force splits to open on the right
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(defun prefer-horizontal-split ()
|
||||||
|
(set-variable 'split-height-threshold nil t)
|
||||||
|
(set-variable 'split-width-threshold 40 t)) ; make this as low as needed
|
||||||
|
(add-hook 'markdown-mode-hook 'prefer-horizontal-split)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
** FILE MANAGER (dired)
|
||||||
|
Image previews in dired
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(map!
|
||||||
|
(:after dired
|
||||||
|
(:map dired-mode-map
|
||||||
|
"C-x i" #'peep-dired
|
||||||
|
)))
|
||||||
|
(evil-define-key 'normal peep-dired-mode-map (kbd "j") 'peep-dired-next-file
|
||||||
|
(kbd "k") 'peep-dired-prev-file)
|
||||||
|
(add-hook 'peep-dired-hook 'evil-normalize-keymaps)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
** AUDIO PLAYER (emms)
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(use-package emms
|
||||||
|
:ensure t
|
||||||
|
:config
|
||||||
|
(require 'emms-setup)
|
||||||
|
(require 'emms-info)
|
||||||
|
(require 'emms-cue)
|
||||||
|
(require 'emms-mode-line)
|
||||||
|
(require 'emms-playing-time)
|
||||||
|
(setq emms-source-file-default-directory "~/Music/Non-Classical/70s-80s/")
|
||||||
|
(setq emms-playlist-buffer-name "*Music*")
|
||||||
|
(setq emms-info-asynchronously t)
|
||||||
|
(unless (eq system-type 'windows-nt)
|
||||||
|
(setq emms-source-file-directory-tree-function
|
||||||
|
'emms-source-file-directory-tree-find))
|
||||||
|
(emms-all)
|
||||||
|
(emms-default-players)
|
||||||
|
(emms-mode-line 1)
|
||||||
|
(emms-playing-time 1))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
** EMAIL CLIENT (mu4e)
|
||||||
|
Setting up mu4e which is an email client that works within emacs.
|
||||||
|
You must install mu4e and mbsync through your Linux distribution's
|
||||||
|
package manager. Setting up smtp for sending mail. Make sure the gnutls command
|
||||||
|
line utils are installed. Package 'gnutls-bin' in Debian/Ubuntu,
|
||||||
|
and 'gnutls' in Arch.
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(add-to-list 'load-path "/usr/local/share/emacs/site-lisp/mu4e")
|
||||||
|
(require 'mu4e)
|
||||||
|
(setq mu4e-get-mail-command "mbsync -c ~/.emacs.d/mu4e/.mbsyncrc -a"
|
||||||
|
mu4e-update-interval 300)
|
||||||
|
(setq
|
||||||
|
user-mail-address "derek@distrotube.com"
|
||||||
|
user-full-name "Derek Taylor"
|
||||||
|
mu4e-compose-signature
|
||||||
|
(concat
|
||||||
|
"Derek Taylor\n"
|
||||||
|
"http://www.youtube.com/DistroTube\n"))
|
||||||
|
(require 'smtpmail)
|
||||||
|
(setq message-send-mail-function 'smtpmail-send-it
|
||||||
|
starttls-use-gnutls t
|
||||||
|
smtpmail-starttls-credentials '(("smtp.1and1.com" 587 nil nil))
|
||||||
|
smtpmail-auth-credentials
|
||||||
|
'(("smtp.1and1.com" 587 "derek@distrotube.com" nil))
|
||||||
|
smtpmail-default-smtp-server "smtp.1and1.com"
|
||||||
|
smtpmail-smtp-server "smtp.1and1.com"
|
||||||
|
smtpmail-smtp-service 587)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
** MASTODON CLIENT (mastodon)
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(setq mastodon-instance-url "https://mastodon.technology")
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(custom-set-variables
|
||||||
|
'(elfeed-feeds
|
||||||
|
(quote
|
||||||
|
(("https://www.reddit.com/r/linux.rss" reddit linux)
|
||||||
|
("https://www.gamingonlinux.com/article_rss.php" gaming linux)
|
||||||
|
("https://hackaday.com/blog/feed/" hackaday linux)
|
||||||
|
("https://opensource.com/feed" opensource linux)
|
||||||
|
("https://linux.softpedia.com/backend.xml" softpedia linux)
|
||||||
|
("https://itsfoss.com/feed/" itsfoss linux)
|
||||||
|
("https://www.zdnet.com/topic/linux/rss.xml" zdnet linux)
|
||||||
|
("https://www.phoronix.com/rss.php" phoronix linux)
|
||||||
|
("http://feeds.feedburner.com/d0od" omgubuntu linux)
|
||||||
|
("https://www.computerworld.com/index.rss" computerworld linux)
|
||||||
|
("https://www.networkworld.com/category/linux/index.rss" networkworld linux)
|
||||||
|
("https://www.techrepublic.com/rssfeeds/topic/open-source/" techrepublic linux)
|
||||||
|
("https://betanews.com/feed" betanews linux)
|
||||||
|
("http://lxer.com/module/newswire/headlines.rss" lxer linux)
|
||||||
|
("https://distrowatch.com/news/dwd.xml" distrowatch linux))))
|
||||||
|
'(package-selected-packages
|
||||||
|
(quote
|
||||||
|
(mastodon exwm peep-dired nav-flash evil-mu4e emms elfeed))))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
custom-set-faces was added by Custom.
|
||||||
|
If you edit it by hand, you could mess it up, so be careful.
|
||||||
|
Your init file should contain only one such instance.
|
||||||
|
If there is more than one, they won't work right.
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(custom-set-faces
|
||||||
|
)
|
||||||
|
#+END_SRC
|
|
@ -178,5 +178,5 @@
|
||||||
;;twitter ; twitter client https://twitter.com/vnought
|
;;twitter ; twitter client https://twitter.com/vnought
|
||||||
|
|
||||||
:config
|
:config
|
||||||
;;literate
|
literate
|
||||||
(default +bindings +smartparens))
|
(default +bindings +smartparens))
|
||||||
|
|
|
@ -49,6 +49,7 @@
|
||||||
;; ...Or *all* packages (NOT RECOMMENDED; will likely break things)
|
;; ...Or *all* packages (NOT RECOMMENDED; will likely break things)
|
||||||
;(unpin! t)
|
;(unpin! t)
|
||||||
(package! exwm)
|
(package! exwm)
|
||||||
|
(package! mastodon)
|
||||||
(package! emms)
|
(package! emms)
|
||||||
(package! emojify)
|
(package! emojify)
|
||||||
(package! elfeed)
|
(package! elfeed)
|
||||||
|
|
|
@ -1,254 +0,0 @@
|
||||||
<div align="center">
|
|
||||||
|
|
||||||
# Doom Emacs
|
|
||||||
|
|
||||||
[Install](#install) • [Documentation] • [FAQ] • [Screenshots] • [Contribute](#contribute)
|
|
||||||
|
|
||||||
![Made with Doom Emacs](https://img.shields.io/github/tag/hlissner/doom-emacs.svg?style=flat-square&label=release&color=58839b)
|
|
||||||
![Supports Emacs 26-27](https://img.shields.io/badge/Supports-Emacs_26.1_--_27.x-blueviolet.svg?style=flat-square&logo=GNU%20Emacs&logoColor=white)
|
|
||||||
![Latest commit](https://img.shields.io/github/last-commit/hlissner/doom-emacs/develop?style=flat-square)
|
|
||||||
![Build status: develop](https://img.shields.io/github/workflow/status/hlissner/doom-emacs/CI/develop?style=flat-square)
|
|
||||||
[![Discord Server](https://img.shields.io/discord/406534637242810369?color=blue&label=Discord%20Chat&logo=discord&logoColor=white&style=flat-square)][Discord]
|
|
||||||
|
|
||||||
![Doom Emacs Screenshot](https://raw.githubusercontent.com/hlissner/doom-emacs/screenshots/main.png)
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Table of Contents
|
|
||||||
- [Introduction](#introduction)
|
|
||||||
- [Features](#features)
|
|
||||||
- [Prerequisites](#prerequisites)
|
|
||||||
- [Install](#install)
|
|
||||||
- [Roadmap](#roadmap)
|
|
||||||
- [Getting help](#getting-help)
|
|
||||||
- [Contribute](#contribute)
|
|
||||||
|
|
||||||
|
|
||||||
# Introduction
|
|
||||||
<a href="http://ultravioletbat.deviantart.com/art/Yay-Evil-111710573">
|
|
||||||
<img src="https://raw.githubusercontent.com/hlissner/doom-emacs/screenshots/cacochan.png" align="right" />
|
|
||||||
</a>
|
|
||||||
|
|
||||||
> It is a story as old as time. A stubborn, shell-dwelling, and melodramatic
|
|
||||||
> vimmer—envious of the features of modern text editors—spirals into
|
|
||||||
> despair before he succumbs to the [dark side][evil-mode]. This is his config.
|
|
||||||
|
|
||||||
Doom is a configuration framework for [GNU Emacs] tailored for Emacs bankruptcy
|
|
||||||
veterans who want less framework in their frameworks, a modicum of stability
|
|
||||||
(and reproducibility) from their package manager, and the performance of a hand
|
|
||||||
rolled config (or better). It can be a foundation for your own config or a
|
|
||||||
resource for Emacs enthusiasts to learn more about our favorite operating
|
|
||||||
system.
|
|
||||||
|
|
||||||
Its design is guided by these mantras:
|
|
||||||
|
|
||||||
+ **Gotta go fast.** Startup and run-time performance are priorities. Doom goes
|
|
||||||
beyond by modifying packages to be snappier and load lazier.
|
|
||||||
+ **Close to metal.** There's less between you and vanilla Emacs by design.
|
|
||||||
That's less to grok and less to work around when you tinker. Internals ought
|
|
||||||
to be written as if reading them were part of Doom's UX, and it is!
|
|
||||||
+ **Opinionated, but not stubborn.** Doom is about reasonable defaults and
|
|
||||||
curated opinions, but use as little or as much of it as you like.
|
|
||||||
+ **Your system, your rules.** You know better. At least, Doom hopes so! It
|
|
||||||
won't *automatically* install system dependencies (and will force plugins not
|
|
||||||
to either). Rely on `doom doctor` to tell you what's missing.
|
|
||||||
+ **Nix/Guix is a great idea!** The Emacs ecosystem is temperamental. Things
|
|
||||||
break and they break often. Disaster recovery should be a priority! Doom's
|
|
||||||
package management should be declarative and your private config reproducible,
|
|
||||||
and comes with a means to roll back releases and updates (still a WIP).
|
|
||||||
|
|
||||||
Check out [the FAQ][FAQ] for answers to common questions about the project.
|
|
||||||
|
|
||||||
|
|
||||||
# Features
|
|
||||||
- Minimalistic good looks inspired by modern editors.
|
|
||||||
- Curated and sane defaults for many packages, (major) OSes, and Emacs itself.
|
|
||||||
- A modular organizational structure for separating concerns in your config.
|
|
||||||
- A standard library designed to simplify your elisp bike shedding.
|
|
||||||
- A declarative [package management system][package-management] (powered by
|
|
||||||
[straight.el]) with a command line interface. Install packages from anywhere,
|
|
||||||
not just (M)ELPA, and pin them to any commit.
|
|
||||||
- Optional vim emulation powered by [evil-mode], including ports of popular vim
|
|
||||||
plugins like [vim-sneak], [vim-easymotion], [vim-unimpaired] and
|
|
||||||
[more][ported-vim-plugins]!
|
|
||||||
- Opt-in LSP integration for many languages, using [lsp-mode] or [eglot]
|
|
||||||
- Support for *many* programming languages. Includes syntax highlighting,
|
|
||||||
linters/checker integration, inline code evaluation, code completion (where
|
|
||||||
possible), REPLs, documentation lookups, snippets, and more!
|
|
||||||
- Support for *many* tools, like docker, pass, ansible, terraform, and more.
|
|
||||||
- A Spacemacs-esque [keybinding scheme][bindings], centered around leader
|
|
||||||
and localleader prefix keys (<kbd>SPC</kbd> and <kbd>SPC</kbd><kbd>m</kbd> for
|
|
||||||
evil users, <kbd>C-c</kbd> and <kbd>C-c l</kbd> for vanilla users).
|
|
||||||
- A rule-based [popup manager][popup-system] to control how temporary buffers
|
|
||||||
are displayed (and disposed of).
|
|
||||||
- Per-file indentation style detection and [editorconfig] integration. Let
|
|
||||||
someone else can argue about tabs vs **_spaces_**.
|
|
||||||
- Project-management tools and framework-specific minor modes with their own
|
|
||||||
snippets libraries.
|
|
||||||
- Project search (and replace) utilities, powered by [ripgrep] and [ivy] or
|
|
||||||
[helm].
|
|
||||||
- Isolated and persistent workspaces (also substitutes for vim tabs).
|
|
||||||
- Support for Chinese and Japanese input systems.
|
|
||||||
- Save a snapshot of your shell environment to a file for Emacs to load at
|
|
||||||
startup. No more struggling to get Emacs to inherit your `PATH`, among other
|
|
||||||
things.
|
|
||||||
|
|
||||||
|
|
||||||
# Prerequisites
|
|
||||||
+ Git 2.23+
|
|
||||||
+ Emacs 26.1+ (*27 is recommended*) with GNUTLS support
|
|
||||||
+ [ripgrep] 11.0+
|
|
||||||
+ GNU `find`
|
|
||||||
+ *OPTIONAL:* [fd] 7.3.0+ (improves file indexing performance for some commands)
|
|
||||||
|
|
||||||
Doom is comprised of [~150 optional modules][Modules], some of which may have
|
|
||||||
additional dependencies. [Visit their documentation][Modules] or run `bin/doom
|
|
||||||
doctor` to check for any that you may have missed.
|
|
||||||
|
|
||||||
|
|
||||||
# Install
|
|
||||||
``` sh
|
|
||||||
git clone --depth 1 https://github.com/hlissner/doom-emacs ~/.emacs.d
|
|
||||||
~/.emacs.d/bin/doom install
|
|
||||||
```
|
|
||||||
|
|
||||||
Then [read our Getting Started guide][getting-started] to be walked through
|
|
||||||
installing, configuring and maintaining Doom Emacs.
|
|
||||||
|
|
||||||
It's a good idea to add `~/.emacs.d/bin` to your `PATH`! Other `bin/doom`
|
|
||||||
commands you should know about:
|
|
||||||
|
|
||||||
+ `doom sync` to synchronize your private config with Doom by installing missing
|
|
||||||
packages, removing orphaned packages, and regenerating caches. Run this
|
|
||||||
whenever you modify your private `init.el` or `packages.el`, or install/remove
|
|
||||||
an Emacs package through your OS package manager (e.g. mu4e or agda).
|
|
||||||
+ `doom upgrade` to update Doom to the latest release & all installed packages.
|
|
||||||
+ `doom doctor` to diagnose common issues with your system and config.
|
|
||||||
+ `doom env` to dump a snapshot of your shell environment to a file that Doom
|
|
||||||
will load at startup. This allows Emacs to inherit your `PATH`, among other
|
|
||||||
things.
|
|
||||||
+ `doom build` to recompile all installed packages (use this if you up/downgrade
|
|
||||||
Emacs).
|
|
||||||
|
|
||||||
|
|
||||||
# Roadmap
|
|
||||||
Doom is an active and ongoing project. To make that development more
|
|
||||||
transparent, its roadmap (and other concerns) are published across three github
|
|
||||||
project boards and a newsletter:
|
|
||||||
|
|
||||||
+ [Development Roadmap](https://github.com/hlissner/doom-emacs/projects/3):
|
|
||||||
roughly outlines our goals between release milestones and their progress.
|
|
||||||
+ [Plugins under review](https://github.com/hlissner/doom-emacs/projects/2):
|
|
||||||
lists plugins we are watching and considering for inclusion, and what their
|
|
||||||
status for inclusion is. Please consult this list before requesting new
|
|
||||||
packages/features.
|
|
||||||
+ [Upstream bugs](https://github.com/hlissner/doom-emacs/projects/5): lists
|
|
||||||
issues that originate from elsewhere, and whether or not we have local
|
|
||||||
workarounds or temporary fixes for them.
|
|
||||||
+ ~~Doom's newsletter~~ (not finished) will contain changelogs in between
|
|
||||||
releases.
|
|
||||||
|
|
||||||
|
|
||||||
# Getting help
|
|
||||||
Emacs is no journey of a mere thousand miles. You _will_ run into problems and
|
|
||||||
mysterious errors. When you do, here are some places you can look for help:
|
|
||||||
|
|
||||||
+ [Our documentation][documentation] covers many use cases.
|
|
||||||
+ [The Configuration section][configuration] covers how to configure Doom and
|
|
||||||
its packages.
|
|
||||||
+ [The Package Management section][package-management] covers how to install
|
|
||||||
and disable packages.
|
|
||||||
+ [This section][bin/doom] explains the `bin/doom` script's most important
|
|
||||||
commands.
|
|
||||||
+ [This section][common-mistakes] lists some common configuration mistakes new
|
|
||||||
users make, when migrating a config from another distro or their own.
|
|
||||||
+ [This answer][change-theme] shows you how to add your own themes to your
|
|
||||||
private config.
|
|
||||||
+ [This answer][change-font] shows you how to change the default font.
|
|
||||||
+ Your issue may be documented in the [FAQ].
|
|
||||||
+ With Emacs built-in help system documentation is a keystroke away:
|
|
||||||
+ For functions: <kbd>SPC h f</kbd> or <kbd>C-h f</kbd>
|
|
||||||
+ For variables: <kbd>SPC h v</kbd> or <kbd>C-h v</kbd>
|
|
||||||
+ For a keybind: <kbd>SPC h k</kbd> or <kbd>C-h k</kbd>
|
|
||||||
+ To search available keybinds: <kbd>SPC h b b</kbd> or <kbd>C-h b b</kbd>
|
|
||||||
+ Run `bin/doom doctor` to detect common issues with your development
|
|
||||||
environment and private config.
|
|
||||||
+ Check out the [FAQ], in case your question has already been answered.
|
|
||||||
+ Search [Doom's issue tracker](/issues) in case your issue was already
|
|
||||||
reported.
|
|
||||||
+ Hop on [our Discord server][discord]; it's active and friendly! Keep an eye on
|
|
||||||
the #announcements channel, where I announce breaking updates and releases.
|
|
||||||
|
|
||||||
|
|
||||||
# Contribute
|
|
||||||
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
|
|
||||||
[![Elisp styleguide](https://img.shields.io/badge/elisp-style%20guide-purple?style=flat-square)](https://github.com/bbatsov/emacs-lisp-style-guide)
|
|
||||||
[![Donate on liberapay](https://img.shields.io/badge/liberapay-donate-1.svg?style=flat-square&logo=liberapay&color=blue)][liberapay]
|
|
||||||
[![Donate on paypal](https://img.shields.io/badge/paypal-donate-1?style=flat-square&logo=paypal&color=blue)][paypal]
|
|
||||||
|
|
||||||
Doom is a labor of love and incurable madness, but I'm only one guy. Doom
|
|
||||||
wouldn't be where it is today without your help. I welcome contributions of any
|
|
||||||
kind!
|
|
||||||
|
|
||||||
+ I :heart: pull requests and bug reports (see the [Contributing
|
|
||||||
Guidelines][contribute])!
|
|
||||||
+ Don't hesitate to [tell me my Elisp-fu
|
|
||||||
sucks](https://github.com/hlissner/doom-emacs/issues/new), but please tell me
|
|
||||||
why.
|
|
||||||
+ Hop on [our Discord server][Discord] and say hi! Help others, hang out or talk
|
|
||||||
to me about Emacs, gamedev, programming, physics, pixel art, anime, gaming --
|
|
||||||
anything you like. Nourish this lonely soul.
|
|
||||||
+ If you'd like to support my work financially, buy me a drink through
|
|
||||||
[liberapay] or [paypal]. My work contends with studies, adventures in indie
|
|
||||||
gamedev and freelance work. Donations help me allocate more time to my Emacs
|
|
||||||
and OSS capers.
|
|
||||||
|
|
||||||
[![](https://sourcerer.io/fame/hlissner/hlissner/doom-emacs/images/0)](https://sourcerer.io/fame/hlissner/hlissner/doom-emacs/links/0)
|
|
||||||
[![](https://sourcerer.io/fame/hlissner/hlissner/doom-emacs/images/1)](https://sourcerer.io/fame/hlissner/hlissner/doom-emacs/links/1)
|
|
||||||
[![](https://sourcerer.io/fame/hlissner/hlissner/doom-emacs/images/2)](https://sourcerer.io/fame/hlissner/hlissner/doom-emacs/links/2)
|
|
||||||
[![](https://sourcerer.io/fame/hlissner/hlissner/doom-emacs/images/3)](https://sourcerer.io/fame/hlissner/hlissner/doom-emacs/links/3)
|
|
||||||
[![](https://sourcerer.io/fame/hlissner/hlissner/doom-emacs/images/4)](https://sourcerer.io/fame/hlissner/hlissner/doom-emacs/links/4)
|
|
||||||
[![](https://sourcerer.io/fame/hlissner/hlissner/doom-emacs/images/5)](https://sourcerer.io/fame/hlissner/hlissner/doom-emacs/links/5)
|
|
||||||
[![](https://sourcerer.io/fame/hlissner/hlissner/doom-emacs/images/6)](https://sourcerer.io/fame/hlissner/hlissner/doom-emacs/links/6)
|
|
||||||
[![](https://sourcerer.io/fame/hlissner/hlissner/doom-emacs/images/7)](https://sourcerer.io/fame/hlissner/hlissner/doom-emacs/links/7)
|
|
||||||
|
|
||||||
|
|
||||||
[contribute]: docs/contributing.org
|
|
||||||
[discord]: https://discord.gg/qvGgnVx
|
|
||||||
[documentation]: docs/index.org
|
|
||||||
[faq]: docs/faq.org
|
|
||||||
[getting-started]: docs/getting_started.org
|
|
||||||
[install]: docs/getting_started.org#install
|
|
||||||
[backtrace]: docs/getting_started.org#how-to-extract-a-backtrace-from-an-error
|
|
||||||
[configuration]: docs/getting_started.org#configuring-doom
|
|
||||||
[package-management]: docs/getting_started.org#package-management
|
|
||||||
[bin/doom]: docs/getting_started.org#the-bindoom-utility
|
|
||||||
[common-mistakes]: docs/getting_started.org#common-mistakes-when-configuring-doom-emacs
|
|
||||||
[change-theme]: docs/faq.org#how-do-i-change-the-theme
|
|
||||||
[change-font]: docs/faq.org#how-do-i-change-the-fonts
|
|
||||||
[modules]: docs/modules.org
|
|
||||||
[popup-system]: modules/ui/popup/README.org
|
|
||||||
[screenshots]: #screenshots
|
|
||||||
|
|
||||||
[bindings]: modules/config/default/+evil-bindings.el
|
|
||||||
[editorconfig]: http://editorconfig.org/
|
|
||||||
[evil-mode]: https://github.com/emacs-evil/evil
|
|
||||||
[fd]: https://github.com/sharkdp/fd
|
|
||||||
[gnu emacs]: https://www.gnu.org/software/emacs/
|
|
||||||
[helm]: https://github.com/emacs-helm/helm
|
|
||||||
[ivy]: https://github.com/abo-abo/swiper
|
|
||||||
[lsp-mode]: https://github.com/emacs-lsp/lsp-mode
|
|
||||||
[eglot]: https://github.com/joaotavora/eglot
|
|
||||||
[nix]: https://nixos.org
|
|
||||||
[ported-vim-plugins]: modules/editor/evil/README.org#ported-vim-plugins
|
|
||||||
[ripgrep]: https://github.com/BurntSushi/ripgrep
|
|
||||||
[straight.el]: https://github.com/raxod502/straight.el
|
|
||||||
[vim-easymotion]: https://github.com/easymotion/vim-easymotion
|
|
||||||
[vim-lion]: https://github.com/tommcdo/vim-lion
|
|
||||||
[vim-sneak]: https://github.com/justinmk/vim-sneak
|
|
||||||
[vim-unimpaired]: https://github.com/tpope/vim-unimpaired
|
|
||||||
|
|
||||||
[liberapay]: https://liberapay.com/hlissner/donate
|
|
||||||
[paypal]: https://paypal.me/henriklissner/10
|
|
|
@ -704,10 +704,12 @@ myKeys =
|
||||||
, ("C-e e", spawn "emacsclient -c -a ''") -- start emacs
|
, ("C-e e", spawn "emacsclient -c -a ''") -- start emacs
|
||||||
, ("C-e b", spawn "emacsclient -c -a '' --eval '(ibuffer)'") -- list emacs buffers
|
, ("C-e b", spawn "emacsclient -c -a '' --eval '(ibuffer)'") -- list emacs buffers
|
||||||
, ("C-e d", spawn "emacsclient -c -a '' --eval '(dired nil)'") -- dired emacs file manager
|
, ("C-e d", spawn "emacsclient -c -a '' --eval '(dired nil)'") -- dired emacs file manager
|
||||||
|
, ("C-e i", spawn "emacsclient -c -a '' --eval '(erc)'") -- erc emacs irc client
|
||||||
, ("C-e m", spawn "emacsclient -c -a '' --eval '(mu4e)'") -- mu4e emacs email client
|
, ("C-e m", spawn "emacsclient -c -a '' --eval '(mu4e)'") -- mu4e emacs email client
|
||||||
, ("C-e n", spawn "emacsclient -c -a '' --eval '(elfeed)'") -- elfeed emacs rss client
|
, ("C-e n", spawn "emacsclient -c -a '' --eval '(elfeed)'") -- elfeed emacs rss client
|
||||||
, ("C-e s", spawn "emacsclient -c -a '' --eval '(eshell)'") -- eshell within emacs
|
, ("C-e s", spawn "emacsclient -c -a '' --eval '(eshell)'") -- eshell within emacs
|
||||||
, ("C-e t", spawn "emacsclient -c -a '' --eval '(+vterm/here nil)'") -- eshell within emacs
|
, ("C-e t", spawn "emacsclient -c -a '' --eval '(mastodon)'") -- mastodon within emacs
|
||||||
|
, ("C-e v", spawn "emacsclient -c -a '' --eval '(+vterm/here nil)'") -- vterm within emacs
|
||||||
-- emms is an emacs audio player. I set it to auto start playing in a specific directory.
|
-- emms is an emacs audio player. I set it to auto start playing in a specific directory.
|
||||||
, ("C-e a", spawn "emacsclient -c -a '' --eval '(emms)' --eval '(emms-play-directory-tree \"~/Music/Non-Classical/70s-80s/\")'")
|
, ("C-e a", spawn "emacsclient -c -a '' --eval '(emms)' --eval '(emms-play-directory-tree \"~/Music/Non-Classical/70s-80s/\")'")
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue