summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-x.config/bspwm/bspwmrc196
-rwxr-xr-x.config/bspwm/network_thread.pl63
-rwxr-xr-x.config/bspwm/terms_thread.pl183
-rw-r--r--.config/zsh/alias.zsh38
-rw-r--r--.emacs2
-rw-r--r--.emacs.d/org/config.org13
6 files changed, 212 insertions, 283 deletions
diff --git a/.config/bspwm/bspwmrc b/.config/bspwm/bspwmrc
index cb7de0d..d64dfe4 100755
--- a/.config/bspwm/bspwmrc
+++ b/.config/bspwm/bspwmrc
@@ -3,6 +3,8 @@
use strict;
use warnings;
use Capture::Tiny qw(capture);
+use Time::HiRes;
+use WWW::Curl::Easy;
use constant {
SXHKD_PATH => '/usr/local/bin/sxhkd',
@@ -21,8 +23,16 @@ use constant {
LOWBAT_PATH => '/usr/local/bin/lowbat',
EMACS_PATH => '/usr/local/bin/emacs',
ALACRITTY_PATH => '/usr/local/bin/alacritty',
- TERMS_THREAD => '/usr/home/jozan/.config/bspwm/terms_thread.pl',
- NETWORK_THREAD => '/usr/home/jozan/.config/bspwm/network_thread.pl'
+ PGREP_PATH => '/bin/pgrep',
+ ESPEAK_PATH => '/usr/local/bin/espeak',
+ SH_PATH => '/bin/sh',
+ ZSH_PATH => '/usr/local/bin/zsh',
+ COWSAY_PATH => '/usr/local/bin/cowsay',
+ HTOP_PATH => '/usr/local/bin/htop',
+ GOTOP_PATH => '/usr/local/bin/gotop',
+ VIFM_PATH => '/usr/local/bin/vifm',
+ GIT_PATH => '/usr/local/bin/git',
+ QTOX_PATH => '/usr/local/bin/qtox'
};
use constant {
BSP_BORDER_WIDTH => 1,
@@ -33,9 +43,11 @@ use constant {
BSP_GAPLESS_MONOCLE => 'true',
BSP_SINGLE_MONOCLE => 'true',
XSET_R_RATE_DELAY => 200,
- XSET_R_RATE_RATE => 100,
+ XSET_R_RATE_RATE => 100
};
-use constant WALLPAPER_PATH => '/usr/home/jozan/Pictures/wallpaper.jpg';
+use constant WALLPAPER_PATH => '/usr/home/jozan/Pictures/wallpaper.jpg';
+use constant COWSAY_WELCOME => 'Welcome back, partner! And remember to try glest!';
+use constant NETWORK_TEST_URL => 'https://www.freebsd.org/';
sub run_if_dead
{
@@ -135,29 +147,181 @@ sub run_bg_programs
return;
}
-sub run_fg_programs
+sub run_espeak
{
- my ($screens) = @_;
- my $pid;
+ my $espeak_pid;
+
+ $espeak_pid = fork();
+ if (not $espeak_pid) {
+ exec(ESPEAK_PATH, COWSAY_WELCOME);
+ }
+ return;
+}
+
+sub fg_on_three_screens
+{
+ my @term_pid;
+
+ $term_pid[0] = fork();
+ if (not $term_pid[0]) {
+ exec(
+ ALACRITTY_PATH, '-e', SH_PATH, '-c',
+ COWSAY_PATH . ' "' . COWSAY_WELCOME . '"; ' . ZSH_PATH
+ );
+ exit;
+ }
+ Time::HiRes::sleep(3.6);
+ $term_pid[1] = fork();
+ if (not $term_pid[1]) {
+ exec(ALACRITTY_PATH, '-e', HTOP_PATH);
+ exit;
+ }
+ Time::HiRes::sleep(3.6);
+ $term_pid[2] = fork();
+ if (not $term_pid[2]) {
+ exec(ALACRITTY_PATH, '-e', GOTOP_PATH);
+ exit;
+ }
+ Time::HiRes::sleep(3.6);
+ system(BSPC_PATH, 'node', '-f', 'west');
+ $term_pid[3] = fork();
+ if (not $term_pid[3]) {
+ exec(ALACRITTY_PATH, '-e', VIFM_PATH);
+ exit;
+ }
+ Time::HiRes::sleep(3.6);
+ system(BSPC_PATH, 'node', '-z', 'right', '180', '0');
+ system(BSPC_PATH, 'node', '-z', 'top', '0', '70');
+ system(BSPC_PATH, 'node', '-f', 'east');
+ system(BSPC_PATH, 'node', '-f', 'north');
+ system(BSPC_PATH, 'node', '-z', 'bottom', '0', '-280');
+ system(BSPC_PATH, 'node', '-f', 'north');
+ system(BSPC_PATH, 'node', '-f', 'west');
+ return;
+}
+
+sub fg_on_two_screens
+{
+ my @term_pid;
+
+ $term_pid[0] = fork();
+ if (not $term_pid[0]) {
+ exec(
+ ALACRITTY_PATH, '-e', SH_PATH, '-c',
+ COWSAY_PATH . ' "' . COWSAY_WELCOME . '"; ' . ZSH_PATH
+ );
+ exit;
+ }
+ Time::HiRes::sleep(3.6);
+ $term_pid[1] = fork();
+ if (not $term_pid[1]) {
+ exec(ALACRITTY_PATH, '-e', HTOP_PATH);
+ exit;
+ }
+ Time::HiRes::sleep(3.6);
+ $term_pid[2] = fork();
+ if (not $term_pid[2]) {
+ exec(ALACRITTY_PATH, '-e', GOTOP_PATH);
+ exit;
+ }
+ Time::HiRes::sleep(3.6);
+ system(BSPC_PATH, 'node', '-f', 'west');
+ $term_pid[3] = fork();
+ if (not $term_pid[3]) {
+ exec(ALACRITTY_PATH, '-e', VIFM_PATH);
+ exit;
+ }
+ Time::HiRes::sleep(3.6);
+ system(BSPC_PATH, 'node', '-z', 'right', '180', '0');
+ system(BSPC_PATH, 'node', '-z', 'top', '0', '70');
+ system(BSPC_PATH, 'node', '-f', 'east');
+ system(BSPC_PATH, 'node', '-f', 'north');
+ system(BSPC_PATH, 'node', '-z', 'bottom', '0', '-280');
+ system(BSPC_PATH, 'node', '-f', 'north');
+ system(BSPC_PATH, 'node', '-f', 'west');
+ return;
+}
+
+sub fg_on_one_screen
+{
+ my @term_pid;
- $pid = fork();
- if (not $pid) {
- exec(TERMS_THREAD, $screens);
+ $term_pid[0] = fork();
+ if (not $term_pid[0]) {
+ exec(
+ ALACRITTY_PATH, '-e', SH_PATH, '-c',
+ COWSAY_PATH . ' "' . COWSAY_WELCOME . '"; ' . ZSH_PATH
+ );
exit;
}
- sleep(14);
+ Time::HiRes::sleep(3.6);
+ system(BSPC_PATH, 'node', '-p', 'west');
+ $term_pid[1] = fork();
+ if (not $term_pid[1]) {
+ exec(ALACRITTY_PATH, '-e', HTOP_PATH);
+ exit;
+ }
+ Time::HiRes::sleep(3.6);
+ $term_pid[2] = fork();
+ if (not $term_pid[2]) {
+ exec(ALACRITTY_PATH, '-e', GOTOP_PATH);
+ }
+ Time::HiRes::sleep(3.6);
+ system(BSPC_PATH, 'node', '-f', 'east');
+ $term_pid[3] = fork();
+ if (not $term_pid[3]) {
+ exec(ALACRITTY_PATH, '-e', VIFM_PATH);
+ }
+ Time::HiRes::sleep(3.6);
+ system(BSPC_PATH, 'node', '-f', 'west');
+ system(BSPC_PATH, 'node', '-f', 'north');
+ system(BSPC_PATH, 'node', '-z', 'bottom', '0', '-200');
+ system(BSPC_PATH, 'node', '-z', 'right', '-220', '0');
+ system(BSPC_PATH, 'node', '-f', 'east');
+ system(BSPC_PATH, 'node', '-z', 'bottom', '0', '70');
+ system(BSPC_PATH, 'node', '-f', 'north');
+ return;
+}
+
+sub run_terms
+{
+ my ($screens) = @_;
+
+ system(BSPC_PATH, 'desktop', '-f', '09');
+ if ($screens == 3) {
+ fg_on_three_screens();
+ }
+ elsif ($screens == 2) {
+ fg_on_two_screens();
+ }
+ else {
+ fg_on_one_screen();
+ }
+ system(BSPC_PATH, 'desktop', '-f', '01');
+ return;
+}
+
+sub run_fg_programs
+{
+ my ($screens) = @_;
+
+ run_espeak();
+ run_terms($screens);
run_if_dead(EMACS_PATH);
return;
}
sub run_network_programs
{
- my $pid;
+ my $curl;
+ my $response_body;
- $pid = fork();
- if (not $pid) {
- exec(NETWORK_THREAD);
- exit;
+ $curl = WWW::Curl::Easy->new;
+ $curl->setopt(CURLOPT_URL, NETWORK_TEST_URL);
+ $curl->setopt(CURLOPT_WRITEDATA, \$response_body);
+ if ($curl->perform == 0) {
+ system(GIT_PATH, '-C', '/usr/home/jozan/.elfeed', 'pull', 'origin', 'master');
+ run_if_dead(QTOX_PATH);
}
return;
}
diff --git a/.config/bspwm/network_thread.pl b/.config/bspwm/network_thread.pl
deleted file mode 100755
index 105d186..0000000
--- a/.config/bspwm/network_thread.pl
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/usr/local/bin/perl
-
-use strict;
-use warnings;
-use Capture::Tiny qw(capture);
-use WWW::Curl::Easy;
-
-use constant {
- PGREP_PATH => '/bin/pgrep',
- GIT_PATH => '/usr/local/bin/git',
- QTOX_PATH => '/usr/local/bin/qtox'
-};
-use constant NETWORK_TEST_URL => 'https://www.freebsd.org/';
-
-sub run_if_dead
-{
- my @argv = @_;
- my $bin;
- my $pid;
-
- $bin = $argv[0];
- $bin =~ s/.+\///g;
- my (undef, undef, $retval) = capture {
- system(
- PGREP_PATH,
- $bin
- );
- };
- $retval = ($retval >> 8) & 0xff;
- if ($retval != 0) {
- $pid = fork();
- if (not $pid) {
- exec(@argv);
- exit;
- }
- }
- return;
-}
-
-sub run_network_programs
-{
- my $curl;
- my $response_body;
-
- $curl = WWW::Curl::Easy->new;
- $curl->setopt(CURLOPT_URL, NETWORK_TEST_URL);
- $curl->setopt(CURLOPT_WRITEDATA, \$response_body);
- if ($curl->perform == 0) {
- system(GIT_PATH, '-C', '/usr/home/jozan/.elfeed', 'pull', 'origin', 'master');
- run_if_dead(QTOX_PATH);
- }
- return;
-}
-
-sub main
-{
- run_network_programs();
- return;
-}
-
-main();
-
-__END__
diff --git a/.config/bspwm/terms_thread.pl b/.config/bspwm/terms_thread.pl
deleted file mode 100755
index ca798a2..0000000
--- a/.config/bspwm/terms_thread.pl
+++ /dev/null
@@ -1,183 +0,0 @@
-#!/usr/local/bin/perl
-
-use strict;
-use warnings;
-use Time::HiRes;
-
-use constant {
- BSPC_PATH => '/usr/local/bin/bspc',
- ESPEAK_PATH => '/usr/local/bin/espeak',
- ALACRITTY_PATH => '/usr/local/bin/alacritty',
- SH_PATH => '/bin/sh',
- ZSH_PATH => '/usr/local/bin/zsh',
- COWSAY_PATH => '/usr/local/bin/cowsay',
- HTOP_PATH => '/usr/local/bin/htop',
- GOTOP_PATH => '/usr/local/bin/gotop',
- VIFM_PATH => '/usr/local/bin/vifm'
-};
-use constant COWSAY_WELCOME => 'Welcome back, partner! And remember to try glest!';
-
-sub run_espeak
-{
- my $espeak_pid;
-
- $espeak_pid = fork();
- if (not $espeak_pid) {
- exec(ESPEAK_PATH, COWSAY_WELCOME);
- }
- return;
-}
-
-sub fg_on_three_screens
-{
- my @term_pid;
-
- $term_pid[0] = fork();
- if (not $term_pid[0]) {
- exec(
- ALACRITTY_PATH, '-e', SH_PATH, '-c',
- COWSAY_PATH . ' "' . COWSAY_WELCOME . '"; ' . ZSH_PATH
- );
- exit;
- }
- Time::HiRes::sleep(3.6);
- $term_pid[1] = fork();
- if (not $term_pid[1]) {
- exec(ALACRITTY_PATH, '-e', HTOP_PATH);
- exit;
- }
- Time::HiRes::sleep(3.6);
- $term_pid[2] = fork();
- if (not $term_pid[2]) {
- exec(ALACRITTY_PATH, '-e', GOTOP_PATH);
- exit;
- }
- Time::HiRes::sleep(3.6);
- system(BSPC_PATH, 'node', '-f', 'west');
- $term_pid[3] = fork();
- if (not $term_pid[3]) {
- exec(ALACRITTY_PATH, '-e', VIFM_PATH);
- exit;
- }
- Time::HiRes::sleep(3.6);
- system(BSPC_PATH, 'node', '-z', 'right', '180', '0');
- system(BSPC_PATH, 'node', '-z', 'top', '0', '70');
- system(BSPC_PATH, 'node', '-f', 'east');
- system(BSPC_PATH, 'node', '-f', 'north');
- system(BSPC_PATH, 'node', '-z', 'bottom', '0', '-280');
- system(BSPC_PATH, 'node', '-f', 'north');
- system(BSPC_PATH, 'node', '-f', 'west');
- return;
-}
-
-sub fg_on_two_screens
-{
- my @term_pid;
-
- $term_pid[0] = fork();
- if (not $term_pid[0]) {
- exec(
- ALACRITTY_PATH, '-e', SH_PATH, '-c',
- COWSAY_PATH . ' "' . COWSAY_WELCOME . '"; ' . ZSH_PATH
- );
- exit;
- }
- Time::HiRes::sleep(3.6);
- $term_pid[1] = fork();
- if (not $term_pid[1]) {
- exec(ALACRITTY_PATH, '-e', HTOP_PATH);
- exit;
- }
- Time::HiRes::sleep(3.6);
- $term_pid[2] = fork();
- if (not $term_pid[2]) {
- exec(ALACRITTY_PATH, '-e', GOTOP_PATH);
- exit;
- }
- Time::HiRes::sleep(3.6);
- system(BSPC_PATH, 'node', '-f', 'west');
- $term_pid[3] = fork();
- if (not $term_pid[3]) {
- exec(ALACRITTY_PATH, '-e', VIFM_PATH);
- exit;
- }
- Time::HiRes::sleep(3.6);
- system(BSPC_PATH, 'node', '-z', 'right', '180', '0');
- system(BSPC_PATH, 'node', '-z', 'top', '0', '70');
- system(BSPC_PATH, 'node', '-f', 'east');
- system(BSPC_PATH, 'node', '-f', 'north');
- system(BSPC_PATH, 'node', '-z', 'bottom', '0', '-280');
- system(BSPC_PATH, 'node', '-f', 'north');
- system(BSPC_PATH, 'node', '-f', 'west');
- return;
-}
-
-sub fg_on_one_screen
-{
- my @term_pid;
-
- $term_pid[0] = fork();
- if (not $term_pid[0]) {
- exec(
- ALACRITTY_PATH, '-e', SH_PATH, '-c',
- COWSAY_PATH . ' "' . COWSAY_WELCOME . '"; ' . ZSH_PATH
- );
- exit;
- }
- Time::HiRes::sleep(3.6);
- system(BSPC_PATH, 'node', '-p', 'west');
- $term_pid[1] = fork();
- if (not $term_pid[1]) {
- exec(ALACRITTY_PATH, '-e', HTOP_PATH);
- exit;
- }
- Time::HiRes::sleep(3.6);
- $term_pid[2] = fork();
- if (not $term_pid[2]) {
- exec(ALACRITTY_PATH, '-e', GOTOP_PATH);
- }
- Time::HiRes::sleep(3.6);
- system(BSPC_PATH, 'node', '-f', 'east');
- $term_pid[3] = fork();
- if (not $term_pid[3]) {
- exec(ALACRITTY_PATH, '-e', VIFM_PATH);
- }
- Time::HiRes::sleep(3.6);
- system(BSPC_PATH, 'node', '-f', 'west');
- system(BSPC_PATH, 'node', '-f', 'north');
- system(BSPC_PATH, 'node', '-z', 'bottom', '0', '-200');
- system(BSPC_PATH, 'node', '-z', 'right', '-220', '0');
- system(BSPC_PATH, 'node', '-f', 'east');
- system(BSPC_PATH, 'node', '-z', 'bottom', '0', '70');
- system(BSPC_PATH, 'node', '-f', 'north');
- return;
-}
-
-sub run_terms
-{
- my ($screens) = @_;
-
- system(BSPC_PATH, 'desktop', '-f', '09');
- if ($screens == 3) {
- fg_on_three_screens();
- }
- elsif ($screens == 2) {
- fg_on_two_screens();
- }
- else {
- fg_on_one_screen();
- }
- system(BSPC_PATH, 'desktop', '-f', '01');
- return;
-}
-
-sub main
-{
- run_espeak();
- run_terms($ARGV[0]);
- return;
-}
-
-main();
-
-__END__
diff --git a/.config/zsh/alias.zsh b/.config/zsh/alias.zsh
index 3cf8e99..5ccc521 100644
--- a/.config/zsh/alias.zsh
+++ b/.config/zsh/alias.zsh
@@ -1,21 +1,21 @@
-alias ls='ls -lohGF'
-alias c='clear'
-alias less='less --tabs 4'
-alias bc='clear; bc -l'
-alias emacs='emacs -nw'
-alias mkf='gmake fclean'
-alias mkc='gmake clean'
-alias mk='gmake -j5'
-alias web='w3m https://duckduckgo.com/'
-alias cp='cp -iv'
-alias mv='mv -iv'
-alias rm='rm -v'
-alias ln='ln -v'
-alias mkdir='mkdir -v'
-alias rmdir='rmdir -v'
-alias chmod='chmod -v'
-alias chown='chown -v'
-alias grep='grep --color'
-alias tree='tree -C'
+alias ls='/usr/local/bin/exa -l'
+alias c='/usr/bin/clear'
+alias less='/usr/bin/less --tabs 4'
+alias bc='/usr/bin/clear; /usr/bin/bc -l'
+alias emacs='/usr/local/bin/emacs -nw'
+alias mkf='/usr/local/bin/gmake fclean'
+alias mkc='/usr/local/bin/gmake clean'
+alias mk='/usr/local/bin/gmake -j5'
+alias web='/usr/local/bin/w3m https://duckduckgo.com/'
+alias cp='/bin/cp -iv'
+alias mv='/bin/mv -iv'
+alias rm='/bin/rm -v'
+alias ln='/bin/ln -v'
+alias mkdir='/bin/mkdir -v'
+alias rmdir='/bin/rmdir -v'
+alias chmod='/bin/chmod -v'
+alias chown='/usr/sbin/chown -v'
+alias grep='/usr/bin/grep --color'
+alias tree='/usr/local/bin/tree -C'
alias ccache='/usr/local/bin/ccache'
alias dotgit='/usr/local/bin/git --git-dir=$HOME/Documents/dotfiles-bsd --work-tree=$HOME'
diff --git a/.emacs b/.emacs
index e5d8b22..dd15f0c 100644
--- a/.emacs
+++ b/.emacs
@@ -36,7 +36,7 @@
'(jdee-db-spec-breakpoint-face-colors (cons "#1c1f2b" "#676E95"))
'(objed-cursor-color "#ff5370")
'(package-selected-packages
- '(font-utils org-evil evil-vimish-fold cl-format crontab-mode vterm symon toc-org evil-org org-bullets yaml-mode twittering-mode helm-slime helm-w3m helm-mu htmlize babel org-pdftools shell-pop which-key golden-ratio elfeed-org elfeed dmenu mingus lua-mode dionysos helm-c-yasnippet helm-emms emms font-lock-cl restart-emacs w3m string-utils go-mode major-mode-icons dired-icon mode-icons evil-collection sed-mode zones kaolin-themes gruvbox-theme helm-themes yasnippet-classic-snippets yasnippet-snippets auto-yasnippet php-auto-yasnippets el-autoyas yasnippet cargo evil-ediff windresize helm-make spacemacs-theme centaur-tabs evil-mu4e evil-magit dashboard slime ssh sudo-ext dockerfile-mode docker frame-local ov dash-functional helm-addressbook org-mime flyspell-correct pdf-tools websocket request emojify-logos emojify oauth2 circe mu4e-alert web-mode doom-themes doom-modeline all-the-icons-dired all-the-icons-gnus all-the-icons html5-schema phps-mode org-babel-eval-in-repl rust-mode smart-mode-line-powerline-theme eshell-prompt-extras eshell-fixed-prompt pyenv-mode s realgud-lldb neotree ranger ## color-theme-modern auto-complete-c-headers command-log-mode auto-complete magit smart-tabs-mode airline-themes paredit autopair tabbar-ruler tabbar use-package-el-get color-theme-approximate diminish rainbow-delimiters color-identifiers-mode use-package helm evil-visual-mark-mode))
+ '(neotree irony xr font-utils org-evil evil-vimish-fold cl-format crontab-mode vterm symon toc-org evil-org org-bullets yaml-mode twittering-mode helm-slime helm-w3m helm-mu htmlize babel org-pdftools shell-pop which-key golden-ratio elfeed-org elfeed dmenu mingus lua-mode dionysos helm-c-yasnippet helm-emms emms font-lock-cl restart-emacs w3m string-utils go-mode major-mode-icons dired-icon mode-icons evil-collection sed-mode zones kaolin-themes gruvbox-theme helm-themes yasnippet-classic-snippets yasnippet-snippets auto-yasnippet php-auto-yasnippets el-autoyas yasnippet cargo evil-ediff windresize helm-make spacemacs-theme centaur-tabs evil-mu4e evil-magit dashboard slime ssh sudo-ext dockerfile-mode docker frame-local ov dash-functional helm-addressbook org-mime flyspell-correct pdf-tools websocket request emojify-logos emojify oauth2 circe mu4e-alert web-mode doom-themes doom-modeline all-the-icons-dired all-the-icons-gnus all-the-icons html5-schema phps-mode org-babel-eval-in-repl rust-mode smart-mode-line-powerline-theme eshell-prompt-extras eshell-fixed-prompt pyenv-mode s realgud-lldb ranger ## color-theme-modern auto-complete-c-headers command-log-mode auto-complete magit smart-tabs-mode airline-themes paredit autopair tabbar-ruler tabbar use-package-el-get color-theme-approximate diminish rainbow-delimiters color-identifiers-mode use-package helm evil-visual-mark-mode))
'(pdf-view-midnight-colors (cons "#EEFFFF" "#292D3E"))
'(pos-tip-background-color "#2E2A29")
'(pos-tip-foreground-color "#d4d4d6")
diff --git a/.emacs.d/org/config.org b/.emacs.d/org/config.org
index 0b5f9e5..e5e19c5 100644
--- a/.emacs.d/org/config.org
+++ b/.emacs.d/org/config.org
@@ -189,7 +189,7 @@
centaur-tabs-height 1
centaur-tabs-style "bar"
centaur-tabs-set-bar 'left
- centaur-tabs-change-fonts "DejaVu Sans Mono Nerd Font")
+ centaur-tabs-change-fonts "mononoki Nerd Font")
(defun centaur-tabs-hide-tab (x)
(let ((name (format "%s" x)))
@@ -200,6 +200,8 @@
(string-prefix-p "*Compile-Log*" name)
(string-prefix-p "*lsp" name)
(string-prefix-p "*elfeed-log*" name)
+ (string-prefix-p "*elfeed-search*" name)
+ (string-prefix-p "*elfeed-entry*" name)
(string-prefix-p "*scratch*" name)
(string-prefix-p "*Messages*" name)
(string-prefix-p "todo.org" name)
@@ -763,6 +765,15 @@ then it takes a second \\[keyboard-quit] to abort the minibuffer."
(define-key markdown-mode-map (kbd "\C-c\C-o") 'toc-org-markdown-follow-thing-at-point)
#+END_SRC
+*** irony
+ #+BEGIN_SRC emacs-lisp
+ (require 'irony)
+ (add-hook 'c++-mode-hook 'irony-mode)
+ (add-hook 'c-mode-hook 'irony-mode)
+ (add-hook 'objc-mode-hook 'irony-mode)
+ (add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options)
+ #+END_SRC
+
** Compilation
*** Close window after errorless compilation
#+BEGIN_SRC emacs-lisp