mirror of
https://github.com/gaschz/dotfiles.git
synced 2025-12-05 14:54:29 +01:00
Compare commits
No commits in common. "c5340022536074e480ba51638646a793b032d070" and "7928a352be6afe63b5df55190090e86ca274bde6" have entirely different histories.
c534002253
...
7928a352be
51
README.md
51
README.md
@ -1,8 +1,7 @@
|
|||||||
# dotfiles
|
# dotfiles
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
SPDX-FileCopyrightText: 2024 seven-beep <ebn@entreparentheses.xyz>
|
|
||||||
|
|
||||||
SPDX-License-Identifier: CC-BY-SA-4.0
|
SPDX-License-Identifier: CC-BY-SA-4.0
|
||||||
-->
|
-->
|
||||||
@ -14,8 +13,6 @@ Dotfiles.
|
|||||||
* [Description](#description)
|
* [Description](#description)
|
||||||
* [Installation](#installation)
|
* [Installation](#installation)
|
||||||
* [Salt](#salt)
|
* [Salt](#salt)
|
||||||
* [Pillar](#pillar)
|
|
||||||
* [Pillar example](#pillar-example)
|
|
||||||
* [Script](#script)
|
* [Script](#script)
|
||||||
* [Usage](#usage)
|
* [Usage](#usage)
|
||||||
* [License](#license)
|
* [License](#license)
|
||||||
@ -62,52 +59,6 @@ Install specific files in Dom0:
|
|||||||
sudo qubesctl state.apply dotfiles.copy-dom0,dotfiles.copy-sh,dotfiles.copy-vim,dotfiles.copy-x11
|
sudo qubesctl state.apply dotfiles.copy-dom0,dotfiles.copy-sh,dotfiles.copy-vim,dotfiles.copy-x11
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Pillar
|
|
||||||
|
|
||||||
By default, all states are executed when applied. Each component can be be
|
|
||||||
deactivated by configuring the corresponding pillar data to a non true value.
|
|
||||||
|
|
||||||
You will need a top and a state file in your `pillar_roots`. If you followed
|
|
||||||
[Qusal's installation instructions](https://github.com/ben-grande/qusal/blob/main/docs/INSTALL.md),
|
|
||||||
it has already configured the setting for you using the value
|
|
||||||
`/srv/pillar/qusal`. What you can do, is selectively enable or disable
|
|
||||||
components.
|
|
||||||
|
|
||||||
For a complete example of a pillar state and a list of their corresponding
|
|
||||||
formulas states, please refer to [pillar.sls.example](pillar.sls.example).
|
|
||||||
|
|
||||||
##### Pillar example
|
|
||||||
|
|
||||||
On the following example, we will selectively disable only the `dom0`
|
|
||||||
component, therefore, the state `copy-dom0.sls` is not applied to `dom0`:
|
|
||||||
|
|
||||||
Create a pillar top to apply to all targets, write it to
|
|
||||||
`/srv/pillar/qusal/dotfiles.top`:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
base:
|
|
||||||
'*':
|
|
||||||
- qusal.dotfiles
|
|
||||||
```
|
|
||||||
|
|
||||||
Then, create a pillar state do disable only `dom0` states, write it to
|
|
||||||
`/srv/pillar/qusal/dotfiles.sls`:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
qusal:
|
|
||||||
dotfiles:
|
|
||||||
dom0: false
|
|
||||||
```
|
|
||||||
|
|
||||||
Add the pillar to the highstate:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
sudo qubesctl top.enable qusal.dotfiles pillar=true
|
|
||||||
```
|
|
||||||
|
|
||||||
From now on, when calling the state `copy-dom0.sls`, it won't execute
|
|
||||||
anything.
|
|
||||||
|
|
||||||
### Script
|
### Script
|
||||||
|
|
||||||
You can simply deploy all configurations with:
|
You can simply deploy all configurations with:
|
||||||
|
|||||||
46
copy-all.sls
46
copy-all.sls
@ -1,43 +1,21 @@
|
|||||||
{#
|
{#
|
||||||
SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
SPDX-FileCopyrightText: 2024 seven-beep <ebn@entreparentheses.xyz>
|
|
||||||
|
|
||||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
#}
|
#}
|
||||||
|
|
||||||
{%- if salt["pillar.get"]("qusal:dotfiles:all", default=True) or
|
|
||||||
salt["pillar.get"]("qusal:dotfiles:dom0") or
|
|
||||||
salt["pillar.get"]("qusal:dotfiles:git") or
|
|
||||||
salt["pillar.get"]("qusal:dotfiles:gtk") or
|
|
||||||
salt["pillar.get"]("qusal:dotfiles:mutt") or
|
|
||||||
salt["pillar.get"]("qusal:dotfiles:net") or
|
|
||||||
salt["pillar.get"]("qusal:dotfiles:pgp") or
|
|
||||||
salt["pillar.get"]("qusal:dotfiles:sh") or
|
|
||||||
salt["pillar.get"]("qusal:dotfiles:ssh") or
|
|
||||||
salt["pillar.get"]("qusal:dotfiles:tmux") or
|
|
||||||
salt["pillar.get"]("qusal:dotfiles:vim") or
|
|
||||||
salt["pillar.get"]("qusal:dotfiles:x11")
|
|
||||||
-%}
|
|
||||||
|
|
||||||
include:
|
include:
|
||||||
- {{ slsdotpath }}.copy-dom0
|
- .copy-dom0
|
||||||
- {{ slsdotpath }}.copy-git
|
- .copy-git
|
||||||
- {{ slsdotpath }}.copy-gtk
|
- .copy-gtk
|
||||||
- {{ slsdotpath }}.copy-mutt
|
- .copy-net
|
||||||
- {{ slsdotpath }}.copy-net
|
- .copy-pgp
|
||||||
- {{ slsdotpath }}.copy-pgp
|
- .copy-sh
|
||||||
- {{ slsdotpath }}.copy-sh
|
- .copy-ssh
|
||||||
- {{ slsdotpath }}.copy-ssh
|
- .copy-tmux
|
||||||
- {{ slsdotpath }}.copy-tmux
|
- .copy-vim
|
||||||
- {{ slsdotpath }}.copy-vim
|
- .copy-x11
|
||||||
- {{ slsdotpath }}.copy-x11
|
- .copy-xfce
|
||||||
|
|
||||||
{%- else -%}
|
|
||||||
|
|
||||||
"{{ sls }}-was-disabled-by-pillar":
|
|
||||||
test.nop
|
|
||||||
|
|
||||||
{%- endif -%}
|
|
||||||
|
|
||||||
{#
|
{#
|
||||||
Unfortunately salt.states.file does not keep permissions when using salt-ssh.
|
Unfortunately salt.states.file does not keep permissions when using salt-ssh.
|
||||||
|
|||||||
@ -1,13 +1,9 @@
|
|||||||
{#
|
{#
|
||||||
SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
SPDX-FileCopyrightText: 2024 seven-beep <ebn@entreparentheses.xyz>
|
|
||||||
|
|
||||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
#}
|
#}
|
||||||
|
|
||||||
{%- set qusal_dot = salt["pillar.get"]("qusal:dotfiles:all", default=True) -%}
|
|
||||||
{%- if salt["pillar.get"]("qusal:dotfiles:dom0", default=qusal_dot) -%}
|
|
||||||
|
|
||||||
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
||||||
|
|
||||||
"{{ slsdotpath }}-copy-dom0-home":
|
"{{ slsdotpath }}-copy-dom0-home":
|
||||||
@ -29,10 +25,3 @@ SPDX-License-Identifier: AGPL-3.0-or-later
|
|||||||
- user: root
|
- user: root
|
||||||
- group: root
|
- group: root
|
||||||
- makedirs: True
|
- makedirs: True
|
||||||
|
|
||||||
{%- else -%}
|
|
||||||
|
|
||||||
"{{ sls }}-was-disabled-by-pillar":
|
|
||||||
test.nop
|
|
||||||
|
|
||||||
{%- endif %}
|
|
||||||
|
|||||||
11
copy-git.sls
11
copy-git.sls
@ -1,13 +1,9 @@
|
|||||||
{#
|
{#
|
||||||
SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
SPDX-FileCopyrightText: 2024 seven-beep <ebn@entreparentheses.xyz>
|
|
||||||
|
|
||||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
#}
|
#}
|
||||||
|
|
||||||
{%- set qusal_dot = salt["pillar.get"]("qusal:dotfiles:all", default=True) -%}
|
|
||||||
{%- if salt["pillar.get"]("qusal:dotfiles:git", default=qusal_dot) -%}
|
|
||||||
|
|
||||||
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
||||||
|
|
||||||
"{{ slsdotpath }}-copy-git-home":
|
"{{ slsdotpath }}-copy-git-home":
|
||||||
@ -69,10 +65,3 @@ SPDX-License-Identifier: AGPL-3.0-or-later
|
|||||||
- mode: '0755'
|
- mode: '0755'
|
||||||
- recurse:
|
- recurse:
|
||||||
- mode
|
- mode
|
||||||
|
|
||||||
{%- else -%}
|
|
||||||
|
|
||||||
"{{ sls }}-was-disabled-by-pillar":
|
|
||||||
test.nop
|
|
||||||
|
|
||||||
{%- endif %}
|
|
||||||
|
|||||||
13
copy-gtk.sls
13
copy-gtk.sls
@ -1,13 +1,9 @@
|
|||||||
{#
|
{#
|
||||||
SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
SPDX-FileCopyrightText: 2024 seven-beep <ebn@entreparentheses.xyz>
|
|
||||||
|
|
||||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
#}
|
#}
|
||||||
|
|
||||||
{%- set qusal_dot = salt["pillar.get"]("qusal:dotfiles:all", default=True) -%}
|
|
||||||
{%- if salt["pillar.get"]("qusal:dotfiles:gtk", default=qusal_dot) -%}
|
|
||||||
|
|
||||||
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
||||||
|
|
||||||
"{{ slsdotpath }}-copy-gtk-home":
|
"{{ slsdotpath }}-copy-gtk-home":
|
||||||
@ -27,10 +23,3 @@ SPDX-License-Identifier: AGPL-3.0-or-later
|
|||||||
- dir_mode: '0700'
|
- dir_mode: '0700'
|
||||||
- user: root
|
- user: root
|
||||||
- group: root
|
- group: root
|
||||||
|
|
||||||
{%- else -%}
|
|
||||||
|
|
||||||
"{{ sls }}-was-disabled-by-pillar":
|
|
||||||
test.nop
|
|
||||||
|
|
||||||
{%- endif %}
|
|
||||||
|
|||||||
@ -1,13 +1,9 @@
|
|||||||
{#
|
{#
|
||||||
SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
SPDX-FileCopyrightText: 2024 seven-beep <ebn@entreparentheses.xyz>
|
|
||||||
|
|
||||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
#}
|
#}
|
||||||
|
|
||||||
{%- set qusal_dot = salt["pillar.get"]("qusal:dotfiles:all", default=True) -%}
|
|
||||||
{%- if salt["pillar.get"]("qusal:dotfiles:mutt", default=qusal_dot) -%}
|
|
||||||
|
|
||||||
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
||||||
|
|
||||||
"{{ slsdotpath }}-copy-mutt-home":
|
"{{ slsdotpath }}-copy-mutt-home":
|
||||||
@ -43,10 +39,3 @@ SPDX-License-Identifier: AGPL-3.0-or-later
|
|||||||
- mode: '0755'
|
- mode: '0755'
|
||||||
- recurse:
|
- recurse:
|
||||||
- mode
|
- mode
|
||||||
|
|
||||||
{%- else -%}
|
|
||||||
|
|
||||||
"{{ sls }}-was-disabled-by-pillar":
|
|
||||||
test.nop
|
|
||||||
|
|
||||||
{%- endif %}
|
|
||||||
|
|||||||
11
copy-net.sls
11
copy-net.sls
@ -1,13 +1,9 @@
|
|||||||
{#
|
{#
|
||||||
SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
SPDX-FileCopyrightText: 2024 seven-beep <ebn@entreparentheses.xyz>
|
|
||||||
|
|
||||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
#}
|
#}
|
||||||
|
|
||||||
{%- set qusal_dot = salt["pillar.get"]("qusal:dotfiles:all", default=True) -%}
|
|
||||||
{%- if salt["pillar.get"]("qusal:dotfiles:net", default=qusal_dot) -%}
|
|
||||||
|
|
||||||
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
||||||
|
|
||||||
"{{ slsdotpath }}-copy-net-home":
|
"{{ slsdotpath }}-copy-net-home":
|
||||||
@ -45,10 +41,3 @@ SPDX-License-Identifier: AGPL-3.0-or-later
|
|||||||
- mode: '0755'
|
- mode: '0755'
|
||||||
- recurse:
|
- recurse:
|
||||||
- mode
|
- mode
|
||||||
|
|
||||||
{%- else -%}
|
|
||||||
|
|
||||||
"{{ sls }}-was-disabled-by-pillar":
|
|
||||||
test.nop
|
|
||||||
|
|
||||||
{%- endif %}
|
|
||||||
|
|||||||
13
copy-pgp.sls
13
copy-pgp.sls
@ -1,13 +1,9 @@
|
|||||||
{#
|
{#
|
||||||
SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
SPDX-FileCopyrightText: 2024 seven-beep <ebn@entreparentheses.xyz>
|
|
||||||
|
|
||||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
#}
|
#}
|
||||||
|
|
||||||
{%- set qusal_dot = salt["pillar.get"]("qusal:dotfiles:all", default=True) -%}
|
|
||||||
{%- if salt["pillar.get"]("qusal:dotfiles:pgp", default=qusal_dot) -%}
|
|
||||||
|
|
||||||
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
||||||
|
|
||||||
"{{ slsdotpath }}-copy-pgp-home":
|
"{{ slsdotpath }}-copy-pgp-home":
|
||||||
@ -31,10 +27,3 @@ SPDX-License-Identifier: AGPL-3.0-or-later
|
|||||||
- group: root
|
- group: root
|
||||||
|
|
||||||
{% endif -%}
|
{% endif -%}
|
||||||
|
|
||||||
{%- else -%}
|
|
||||||
|
|
||||||
"{{ sls }}-was-disabled-by-pillar":
|
|
||||||
test.nop
|
|
||||||
|
|
||||||
{%- endif %}
|
|
||||||
|
|||||||
13
copy-sh.sls
13
copy-sh.sls
@ -1,13 +1,9 @@
|
|||||||
{#
|
{#
|
||||||
SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
SPDX-FileCopyrightText: 2024 seven-beep <ebn@entreparentheses.xyz>
|
|
||||||
|
|
||||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
#}
|
#}
|
||||||
|
|
||||||
{%- set qusal_dot = salt["pillar.get"]("qusal:dotfiles:all", default=True) -%}
|
|
||||||
{%- if salt["pillar.get"]("qusal:dotfiles:sh", default=qusal_dot) -%}
|
|
||||||
|
|
||||||
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
||||||
|
|
||||||
"{{ slsdotpath }}-copy-sh-home":
|
"{{ slsdotpath }}-copy-sh-home":
|
||||||
@ -47,10 +43,3 @@ SPDX-License-Identifier: AGPL-3.0-or-later
|
|||||||
- dir_mode: '0755'
|
- dir_mode: '0755'
|
||||||
- recurse:
|
- recurse:
|
||||||
- mode
|
- mode
|
||||||
|
|
||||||
{%- else -%}
|
|
||||||
|
|
||||||
"{{ sls }}-was-disabled-by-pillar":
|
|
||||||
test.nop
|
|
||||||
|
|
||||||
{%- endif %}
|
|
||||||
|
|||||||
13
copy-ssh.sls
13
copy-ssh.sls
@ -1,13 +1,9 @@
|
|||||||
{#
|
{#
|
||||||
SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
SPDX-FileCopyrightText: 2024 seven-beep <ebn@entreparentheses.xyz>
|
|
||||||
|
|
||||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
#}
|
#}
|
||||||
|
|
||||||
{%- set qusal_dot = salt["pillar.get"]("qusal:dotfiles:all", default=True) -%}
|
|
||||||
{%- if salt["pillar.get"]("qusal:dotfiles:ssh", default=qusal_dot) -%}
|
|
||||||
|
|
||||||
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
||||||
|
|
||||||
"{{ slsdotpath }}-copy-ssh-home":
|
"{{ slsdotpath }}-copy-ssh-home":
|
||||||
@ -28,10 +24,3 @@ SPDX-License-Identifier: AGPL-3.0-or-later
|
|||||||
- dir_mode: '0700'
|
- dir_mode: '0700'
|
||||||
- user: root
|
- user: root
|
||||||
- group: root
|
- group: root
|
||||||
|
|
||||||
{%- else -%}
|
|
||||||
|
|
||||||
"{{ sls }}-was-disabled-by-pillar":
|
|
||||||
test.nop
|
|
||||||
|
|
||||||
{%- endif %}
|
|
||||||
|
|||||||
@ -1,13 +1,9 @@
|
|||||||
{#
|
{#
|
||||||
SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
SPDX-FileCopyrightText: 2024 seven-beep <ebn@entreparentheses.xyz>
|
|
||||||
|
|
||||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
#}
|
#}
|
||||||
|
|
||||||
{%- set qusal_dot = salt["pillar.get"]("qusal:dotfiles:all", default=True) -%}
|
|
||||||
{%- if salt["pillar.get"]("qusal:dotfiles:tmux", default=qusal_dot) -%}
|
|
||||||
|
|
||||||
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
||||||
|
|
||||||
"{{ slsdotpath }}-copy-tmux-home":
|
"{{ slsdotpath }}-copy-tmux-home":
|
||||||
@ -41,10 +37,3 @@ SPDX-License-Identifier: AGPL-3.0-or-later
|
|||||||
- mode: '0755'
|
- mode: '0755'
|
||||||
- recurse:
|
- recurse:
|
||||||
- mode
|
- mode
|
||||||
|
|
||||||
{%- else -%}
|
|
||||||
|
|
||||||
"{{ sls }}-was-disabled-by-pillar":
|
|
||||||
test.nop
|
|
||||||
|
|
||||||
{%- endif %}
|
|
||||||
|
|||||||
13
copy-vim.sls
13
copy-vim.sls
@ -1,13 +1,9 @@
|
|||||||
{#
|
{#
|
||||||
SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
SPDX-FileCopyrightText: 2024 seven-beep <ebn@entreparentheses.xyz>
|
|
||||||
|
|
||||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
#}
|
#}
|
||||||
|
|
||||||
{%- set qusal_dot = salt["pillar.get"]("qusal:dotfiles:all", default=True) -%}
|
|
||||||
{%- if salt["pillar.get"]("qusal:dotfiles:vim", default=qusal_dot) -%}
|
|
||||||
|
|
||||||
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
||||||
|
|
||||||
"{{ slsdotpath }}-copy-vim-home":
|
"{{ slsdotpath }}-copy-vim-home":
|
||||||
@ -27,10 +23,3 @@ SPDX-License-Identifier: AGPL-3.0-or-later
|
|||||||
- dir_mode: '0700'
|
- dir_mode: '0700'
|
||||||
- user: root
|
- user: root
|
||||||
- group: root
|
- group: root
|
||||||
|
|
||||||
{%- else -%}
|
|
||||||
|
|
||||||
"{{ sls }}-was-disabled-by-pillar":
|
|
||||||
test.nop
|
|
||||||
|
|
||||||
{%- endif %}
|
|
||||||
|
|||||||
13
copy-x11.sls
13
copy-x11.sls
@ -1,13 +1,9 @@
|
|||||||
{#
|
{#
|
||||||
SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
SPDX-FileCopyrightText: 2024 seven-beep <ebn@entreparentheses.xyz>
|
|
||||||
|
|
||||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
#}
|
#}
|
||||||
|
|
||||||
{%- set qusal_dot = salt["pillar.get"]("qusal:dotfiles:all", default=True) -%}
|
|
||||||
{%- if salt["pillar.get"]("qusal:dotfiles:x11", default=qusal_dot) -%}
|
|
||||||
|
|
||||||
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
||||||
|
|
||||||
"{{ slsdotpath }}-copy-x11-home":
|
"{{ slsdotpath }}-copy-x11-home":
|
||||||
@ -31,10 +27,3 @@ SPDX-License-Identifier: AGPL-3.0-or-later
|
|||||||
- group: root
|
- group: root
|
||||||
- keep_symlinks: True
|
- keep_symlinks: True
|
||||||
- force_symlinks: True
|
- force_symlinks: True
|
||||||
|
|
||||||
{%- else -%}
|
|
||||||
|
|
||||||
"{{ sls }}-was-disabled-by-pillar":
|
|
||||||
test.nop
|
|
||||||
|
|
||||||
{%- endif %}
|
|
||||||
|
|||||||
29
copy-xfce.sls
Normal file
29
copy-xfce.sls
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{#
|
||||||
|
SPDX-FileCopyrightText: 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
|
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
#}
|
||||||
|
|
||||||
|
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
||||||
|
|
||||||
|
"{{ slsdotpath }}-copy-xfce-home":
|
||||||
|
file.recurse:
|
||||||
|
- name: {{ gui_user.gui_user_home }}/
|
||||||
|
- source: salt://{{ slsdotpath }}/files/xfce/
|
||||||
|
- file_mode: '0644'
|
||||||
|
- dir_mode: '0700'
|
||||||
|
- user: {{ gui_user.gui_user }}
|
||||||
|
- group: {{ gui_user.gui_user }}
|
||||||
|
- keep_symlinks: True
|
||||||
|
- force_symlinks: True
|
||||||
|
|
||||||
|
"{{ slsdotpath }}-copy-xfce-skel":
|
||||||
|
file.recurse:
|
||||||
|
- name: /etc/skel
|
||||||
|
- source: salt://{{ slsdotpath }}/files/xfce/
|
||||||
|
- file_mode: '0644'
|
||||||
|
- dir_mode: '0700'
|
||||||
|
- user: root
|
||||||
|
- group: root
|
||||||
|
- keep_symlinks: True
|
||||||
|
- force_symlinks: True
|
||||||
9
copy-xfce.top
Normal file
9
copy-xfce.top
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{#
|
||||||
|
SPDX-FileCopyrightText: 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
|
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
#}
|
||||||
|
|
||||||
|
base:
|
||||||
|
'*':
|
||||||
|
- dotfiles.copy-xfce
|
||||||
@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# SPDX-FileCopyrightText: 2018 Chris Laprise <https://github.com/tasket>
|
# SPDX-FileCopyrightText: 2018 Chris Laprise <https://github.com/tasket>
|
||||||
# SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-only
|
# SPDX-License-Identifier: GPL-3.0-only
|
||||||
|
|
||||||
@ -9,80 +9,57 @@
|
|||||||
## Credits: https://github.com/tasket/Qubes-scripts
|
## Credits: https://github.com/tasket/Qubes-scripts
|
||||||
set -eu
|
set -eu
|
||||||
|
|
||||||
|
if ! command -v sensors >/dev/null; then
|
||||||
|
printf '%s\n' "Program not installed: sensors" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
if ! command -v xentop >/dev/null; then
|
if ! command -v xentop >/dev/null; then
|
||||||
printf '%s\n' "Program not installed: xentop" >&2
|
printf '%s\n' "Program not installed: xentop" >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
sensors="1"
|
|
||||||
if ! command -v sensors >/dev/null; then
|
|
||||||
sensors="0"
|
|
||||||
fi
|
|
||||||
|
|
||||||
redraw(){
|
sensors_stats () {
|
||||||
# shellcheck disable=SC2312
|
# shellcheck disable=SC2312
|
||||||
stty size </dev/null 2>&1 >&2 | read -r LINES COLUMNS
|
sensors | grep -E -e "^(${sensor_lines})"
|
||||||
tput ed home
|
|
||||||
}
|
}
|
||||||
|
|
||||||
do_tui(){
|
delay=5
|
||||||
stty -echo -icanon
|
sortcol=3
|
||||||
tput smcup civis home
|
sensor_lines='Package id 0|fan1|CPU'
|
||||||
}
|
|
||||||
|
|
||||||
undo_tui(){
|
|
||||||
stty echo icanon
|
|
||||||
tput cnorm rmcup
|
|
||||||
}
|
|
||||||
|
|
||||||
trap 'undo_tui' HUP INT QUIT ABRT TERM EXIT
|
|
||||||
trap 'redraw' WINCH
|
|
||||||
do_tui
|
|
||||||
|
|
||||||
get_header(){
|
|
||||||
cpusum=0
|
|
||||||
memsum=0
|
|
||||||
table=""
|
|
||||||
if test "${sensors}" != "0"; then
|
|
||||||
sensors | grep -E -e "^(fan[1-9]+|[C|G]PU|temp[1-9]+):" |
|
|
||||||
grep -v -e "0 RPM" -e "+0\.0.C" |
|
|
||||||
tr -s "\t" " " | tr "\n" "\t" | sed "s/\s\+$/\n/" || true
|
|
||||||
fi
|
|
||||||
printf '%s%-40s %-6s %6s %8s%s\n' "${bold}" 'Qube' 'State' 'CPU(%)' \
|
|
||||||
'MEM(MiB)' "${nobold}"
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
table=""
|
|
||||||
delay=1
|
|
||||||
sortcol=1
|
|
||||||
newline='
|
newline='
|
||||||
'
|
'
|
||||||
bold="$(tput smso)"
|
sumline="--------------------------------------------------------"
|
||||||
nobold="$(tput rmso)"
|
header="\033[2K\nVM NAME STATE CPU(%) MEM(MB)"
|
||||||
index=0
|
|
||||||
|
|
||||||
get_header
|
trap "tput reset" HUP INT QUIT ABRT TERM EXIT
|
||||||
|
|
||||||
|
tput reset
|
||||||
|
sensors_stats
|
||||||
|
printf '%b\n' "${header}"
|
||||||
|
cpusum=0; memsum=0; table="${sumline}"
|
||||||
# shellcheck disable=SC2016,SC2312
|
# shellcheck disable=SC2016,SC2312
|
||||||
xentop -b -f -d "${delay}" | \
|
stdbuf -oL xentop -b -f -d "${delay}" | \
|
||||||
stdbuf -oL awk '{printf ("%-40s %-6s %6d %8d\n", $1,$2,$4,$5/1000) }' | \
|
stdbuf -oL awk '{printf ("%-32s %5s %5d %7d\n", $1,$2,$4,$5/1000) }' | \
|
||||||
(
|
(
|
||||||
read -r _
|
read -r ln
|
||||||
while true; do
|
while true; do
|
||||||
if read -r -t 0.1 line; then
|
if read -r -t 0.1 ln; then
|
||||||
table="${table:+${table}${newline}}${line}"
|
table="${table}${newline}${ln}"
|
||||||
read -r _ _ cpu mem <<<"${line}"
|
read -r _ _ cpu mem <<<"${ln}"
|
||||||
index=$((index+1))
|
|
||||||
cpusum=$((cpusum+cpu))
|
cpusum=$((cpusum+cpu))
|
||||||
memsum=$((memsum+mem))
|
memsum=$((memsum+mem))
|
||||||
cpuavg=$((cpusum/index))
|
|
||||||
else
|
else
|
||||||
index=0
|
# End of list, print totals, make new page.
|
||||||
sort -k "${sortcol}" -n <<<"${table}"
|
sort -k "${sortcol}" -n -r <<<"${table}"
|
||||||
printf '%s%-s %-34s %-6s %6d %8d%s' "${bold}" "Total" "" "" \
|
printf '%-32s %5s %5d %7d\033[J\033[H' " " " " "${cpusum}" \
|
||||||
"${cpuavg}" "${memsum}" "${nobold}"
|
"${memsum}"
|
||||||
tput ed home
|
read -r ln
|
||||||
read -r _
|
cpusum=0; memsum=0
|
||||||
get_header
|
table="${sumline}"
|
||||||
|
#clear
|
||||||
|
#sensors |grep -E "^(${sensor_lines})"
|
||||||
|
sensors_stats
|
||||||
|
printf '%b\n' "\033[2K${header}\n"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
)
|
)
|
||||||
|
|||||||
@ -38,4 +38,4 @@ fi
|
|||||||
description="$(printf '%s\n' "$3" | cut -c 1-80)"
|
description="$(printf '%s\n' "$3" | cut -c 1-80)"
|
||||||
test_description description "${description}"
|
test_description description "${description}"
|
||||||
|
|
||||||
printf '%s\n' "${description}" | tee -- "${description_file}"
|
printf '%s\n' "${description}" | tee "${description_file}"
|
||||||
|
|||||||
@ -1,35 +1,30 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
## SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
## SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
##
|
##
|
||||||
## SPDX-License-Identifier: AGPL-3.0-or-later
|
## SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
set -eu
|
set -eu
|
||||||
|
|
||||||
if command -v delta >/dev/null; then
|
if command -v delta >/dev/null; then
|
||||||
exec delta -- "${@}"
|
exec delta "${@}"
|
||||||
else
|
else
|
||||||
: "${DIFF_HIGHLIGHT_SOURCE:=/usr/share/doc/git/contrib/diff-highlight}"
|
: "${DIFF_HIGHLIGHT_SOURCE:=/usr/share/doc/git/contrib/diff-highlight}"
|
||||||
: "${DIFF_HIGHLIGHT_EXEC:=/usr/share/git-core/contrib/diff-highlight}"
|
: "${DIFF_HIGHLIGHT_EXEC:=/usr/share/git-core/contrib/diff-highlight}"
|
||||||
|
|
||||||
git_less(){
|
|
||||||
exec less -RS -- "${@}"
|
|
||||||
}
|
|
||||||
|
|
||||||
## Debian.
|
## Debian.
|
||||||
if command -v perl >/dev/null &&
|
if command -v perl >/dev/null &&
|
||||||
test -f "${DIFF_HIGHLIGHT_SOURCE}/DiffHighlight.pm" &&
|
test -f "${DIFF_HIGHLIGHT_SOURCE}/DiffHighlight.pm" &&
|
||||||
test -f "${DIFF_HIGHLIGHT_SOURCE}/diff-highlight.perl"
|
test -f "${DIFF_HIGHLIGHT_SOURCE}/diff-highlight.perl"
|
||||||
then
|
then
|
||||||
exec perl -I "${DIFF_HIGHLIGHT_SOURCE}" -MDiffHighlight -- \
|
exec perl -I "${DIFF_HIGHLIGHT_SOURCE}" -MDiffHighlight -- \
|
||||||
"${DIFF_HIGHLIGHT_SOURCE}/diff-highlight.perl" | git_less
|
"${DIFF_HIGHLIGHT_SOURCE}/diff-highlight.perl" | less -RS
|
||||||
exit
|
|
||||||
## Fedora.
|
## Fedora.
|
||||||
elif command -v perl >/dev/null && test -f "${DIFF_HIGHLIGHT_EXEC}"
|
elif command -v perl >/dev/null && test -f "${DIFF_HIGHLIGHT_EXEC}"
|
||||||
then
|
then
|
||||||
exec "${DIFF_HIGHLIGHT_EXEC}" | git_less
|
exec "${DIFF_HIGHLIGHT_EXEC}" | less -RS
|
||||||
exit
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
git_less "${@}"
|
exec less -RS "${@}"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
##
|
##
|
||||||
## SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
## SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
##
|
##
|
||||||
## SPDX-License-Identifier: AGPL-3.0-or-later
|
## SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
##
|
##
|
||||||
@ -28,14 +28,14 @@ test -f ./setup.sh ||
|
|||||||
|
|
||||||
if test "${qube}" = "dom0"; then
|
if test "${qube}" = "dom0"; then
|
||||||
sh ./dotfiles/setup.sh
|
sh ./dotfiles/setup.sh
|
||||||
user="$(getent group qubes | awk -F "[:,]" '{print $4}')"
|
user_name="$(getent group qubes | awk -F "[:,]" '{print $4}')"
|
||||||
home="$(getent passwd "${user}" | awk -F ":" '{print $6}')"
|
user_home="$(getent passwd "${user_name}" | awk -F ":" '{print $6}')"
|
||||||
sudo -u "${user}" mkdir -pv -- "${home}/.cache"
|
sudo -u "${user_name}" mkdir -pv -- "${user_home}/.cache"
|
||||||
tmpdir="$(sudo -u "${user}" -- mktemp -d -- "${home}/.cache/XXXXXX")"
|
tmpdir="$(sudo -u "${user_name}" -- mktemp -d -- "${user_home}/.cache/XXXXXX")"
|
||||||
trap 'rm -rf -- "${tmpdir}"' EXIT INT HUP QUIT ABRT
|
trap 'rm -rf -- "${tmpdir}"' EXIT INT HUP QUIT ABRT
|
||||||
cp -r -- ./dotfiles "${tmpdir}"
|
cp -r -- ./dotfiles "${tmpdir}"
|
||||||
chown -R -- "${user}:${user}" "${tmpdir}"
|
chown -R -- "${user_name}:${user_name}" "${tmpdir}"
|
||||||
sudo -u "${user}" -- "${tmpdir}/dotfiles/setup.sh"
|
sudo -u "${user_name}" -- "${tmpdir}/dotfiles/setup.sh"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
## SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
## SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
##
|
##
|
||||||
## SPDX-License-Identifier: AGPL-3.0-or-later
|
## SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
@ -43,11 +43,7 @@ _reset_line() {
|
|||||||
esac
|
esac
|
||||||
## Credit: Can't find the source, posted on StackExchange or alike.
|
## Credit: Can't find the source, posted on StackExchange or alike.
|
||||||
## Does not work well on Bash 5.0 and older.
|
## Does not work well on Bash 5.0 and older.
|
||||||
bash_version_clean="${BASH_VERSION%.*}"
|
bash_version_clean="$(printf '%s\n' "${BASH_VERSION%.*}" | tr -d ".")"
|
||||||
bash_version_clean="${bash_version_clean//\./}"
|
|
||||||
if [[ ! ${bash_version_clean} =~ ^[0-9]+$ ]]; then
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
if test "${bash_version_clean}" -lt 51; then
|
if test "${bash_version_clean}" -lt 51; then
|
||||||
unset bash_version_clean
|
unset bash_version_clean
|
||||||
return
|
return
|
||||||
@ -60,17 +56,15 @@ _reset_line() {
|
|||||||
## On pending input, assume it's been echoed and we're not in first column.
|
## On pending input, assume it's been echoed and we're not in first column.
|
||||||
## Otherwise ask the terminal for current column and read it from input.
|
## Otherwise ask the terminal for current column and read it from input.
|
||||||
if read -t 0 || {
|
if read -t 0 || {
|
||||||
# shellcheck disable=SC2154
|
IFS='[;' read -s -r -d'R' -p$'\033[6n' _ _ cur_y && [[ ${cur_y} != 1 ]]
|
||||||
IFS='[;' read -s -r -d'R' -p "${_t_u7}" _ _ cur_y && [[ ${cur_y} != 1 ]]
|
|
||||||
}
|
}
|
||||||
then
|
then
|
||||||
unset cur_y
|
unset cur_y
|
||||||
## Print line ending char with reversed video and end with newline.
|
## Print line ending char with reversed video and end with newline.
|
||||||
if test "${color_prompt-}" = "yes"; then
|
if test "${color_prompt-}" = "yes"; then
|
||||||
# shellcheck disable=SC2154
|
printf '%b' "\033[41m\033[0m\033[7m%\033[m\n\r"
|
||||||
printf '%s\n\r' "${_t_sgr0}${_t_rev}%${_t_sgr0}"
|
|
||||||
else
|
else
|
||||||
printf '%s\n\r' "%"
|
printf '%b' "%\n\r"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@ -78,13 +72,10 @@ _reset_line() {
|
|||||||
_print_ec(){
|
_print_ec(){
|
||||||
test "${_ec_ps1}" = "0" && return
|
test "${_ec_ps1}" = "0" && return
|
||||||
if test "${color_prompt:-}" = "yes"; then
|
if test "${color_prompt:-}" = "yes"; then
|
||||||
# shellcheck disable=SC2154
|
printf '%b%s%b' "(\001\033[31m\002" "${_ec_ps1}" "\001\033[0m\002)"
|
||||||
printf '(\001%s\002%s\001%s\002)' "${_t_setaf_1}" "${_ec_ps1}" \
|
|
||||||
"${_t_sgr0}"
|
|
||||||
else
|
else
|
||||||
printf '(%s)' "${_ec_ps1}"
|
printf '%s' "(${_ec_ps1})"
|
||||||
fi
|
fi
|
||||||
unset _ec_ps1
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_save_ec() { _ec_ps1=$?; }
|
_save_ec() { _ec_ps1=$?; }
|
||||||
@ -94,10 +85,10 @@ newline=$'\n'
|
|||||||
# shellcheck disable=SC2154
|
# shellcheck disable=SC2154
|
||||||
if test "${color_prompt:-}" = "yes"; then
|
if test "${color_prompt:-}" = "yes"; then
|
||||||
# shellcheck disable=SC2154
|
# shellcheck disable=SC2154
|
||||||
PS1="\$(_reset_line)\$(resize-terminal)\[${_t_setaf_5}\][\[${_t_sgr0}\]"
|
PS1="\$(_reset_line)\$(resize-terminal)\[\033[35m\][\[${reset_color}\]"
|
||||||
PS1="${PS1}${debian_chroot:+(${debian_chroot})}\[${usercolor}\]\u@\h "
|
PS1="${PS1}${debian_chroot:+(${debian_chroot})}\[${usercolor}\]\u@\h "
|
||||||
PS1="${PS1}\[${dircolor}\]\w\[${_t_sgr0}\]\$(_git_prompt_info)"
|
PS1="${PS1}\[${dircolor}\]\w\[${reset_color}\]\$(_git_prompt_info)"
|
||||||
PS1="${PS1}\[${_t_setaf_5}\]]\[${_t_sgr0}\]${newline-}\$(_print_ec)"
|
PS1="${PS1}\[\033[35m\]]\[${reset_color}\]${newline-}\$(_print_ec)"
|
||||||
PS1="${PS1}${ps1_symbol} "
|
PS1="${PS1}${ps1_symbol} "
|
||||||
else
|
else
|
||||||
PS1="\$(_reset_line)\$(resize-terminal)"
|
PS1="\$(_reset_line)\$(resize-terminal)"
|
||||||
@ -109,7 +100,7 @@ fi
|
|||||||
case "${TERM-}" in
|
case "${TERM-}" in
|
||||||
screen*|xterm*|rxvt*)
|
screen*|xterm*|rxvt*)
|
||||||
## Set window title
|
## Set window title
|
||||||
PS1="\[\033]0;${debian_chroot:+(${debian_chroot})}\u@\h: \w\a\]${PS1}"
|
PS1="\[\e]0;${debian_chroot:+(${debian_chroot})}\u@\h: \w\a\]${PS1}"
|
||||||
;;
|
;;
|
||||||
*) ;;
|
*) ;;
|
||||||
esac
|
esac
|
||||||
@ -121,14 +112,14 @@ case "${TERM-}" in
|
|||||||
*)
|
*)
|
||||||
## Reset cursor to steady block after command input and before execution.
|
## Reset cursor to steady block after command input and before execution.
|
||||||
# shellcheck disable=SC2034
|
# shellcheck disable=SC2034
|
||||||
PS0="\033[2 q\2"
|
PS0="\e[2 q\2"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
if ! shopt -oq posix; then
|
if ! shopt -oq posix; then
|
||||||
source_readable /usr/share/bash-completion/bash_completion
|
source_readable /usr/share/bash-completion/bash_completion
|
||||||
fi
|
fi
|
||||||
|
|
||||||
unset newline ps1_symbol dircolor usercolor
|
unset newline ps1_symbol
|
||||||
## }}}
|
## }}}
|
||||||
## {{{ Plugins
|
## {{{ Plugins
|
||||||
if has zoxide; then
|
if has zoxide; then
|
||||||
|
|||||||
@ -20,13 +20,13 @@ set editing-mode emacs
|
|||||||
set show-mode-in-prompt on
|
set show-mode-in-prompt on
|
||||||
|
|
||||||
$if term=linux
|
$if term=linux
|
||||||
set emacs-mode-string "\1\033[?0c\2"
|
set emacs-mode-string "\1\e[?0c\2"
|
||||||
set vi-ins-mode-string "\1\033[?0c\2"
|
set vi-ins-mode-string "\1\e[?0c\2"
|
||||||
set vi-cmd-mode-string "\1\033[?8c\2"
|
set vi-cmd-mode-string "\1\e[?8c\2"
|
||||||
$else
|
$else
|
||||||
set emacs-mode-string "\1\033[5 q\2"
|
set emacs-mode-string "\1\e[5 q\2"
|
||||||
set vi-ins-mode-string "\1\033[5 q\2"
|
set vi-ins-mode-string "\1\e[5 q\2"
|
||||||
set vi-cmd-mode-string "\1\033[2 q\2"
|
set vi-cmd-mode-string "\1\e[2 q\2"
|
||||||
$endif
|
$endif
|
||||||
|
|
||||||
$if term=''
|
$if term=''
|
||||||
@ -59,8 +59,8 @@ $if mode=emacs
|
|||||||
|
|
||||||
set keymap emacs-ctlx
|
set keymap emacs-ctlx
|
||||||
v: vi-editing-mode
|
v: vi-editing-mode
|
||||||
Control-v: "\C-xv\033"
|
Control-v: "\C-xv\e"
|
||||||
Esc: "\C-xv\033"
|
Esc: "\C-xv\e"
|
||||||
set keymap emacs
|
set keymap emacs
|
||||||
|
|
||||||
$else
|
$else
|
||||||
@ -117,46 +117,46 @@ $endif
|
|||||||
|
|
||||||
|
|
||||||
## Home
|
## Home
|
||||||
"\033[1~": beginning-of-line
|
"\e[1~": beginning-of-line
|
||||||
"\033[H": beginning-of-line
|
"\e[H": beginning-of-line
|
||||||
"\033OH": beginning-of-line
|
"\eOH": beginning-of-line
|
||||||
|
|
||||||
## End
|
## End
|
||||||
"\033[4~": end-of-line
|
"\e[4~": end-of-line
|
||||||
"\033[F": end-of-line
|
"\e[F": end-of-line
|
||||||
"\033OF": end-of-line
|
"\eOF": end-of-line
|
||||||
|
|
||||||
## Delete
|
## Delete
|
||||||
"\033[3~": delete-char
|
"\e[3~": delete-char
|
||||||
"\033[P": delete-char
|
"\e[P": delete-char
|
||||||
"\033OP": delete-char
|
"\eOP": delete-char
|
||||||
|
|
||||||
## Insert
|
## Insert
|
||||||
"\033[2~": quoted-insert
|
"\e[2~": quoted-insert
|
||||||
"\033[L": quoted-insert
|
"\e[L": quoted-insert
|
||||||
|
|
||||||
## PgUp
|
## PgUp
|
||||||
"\033[5~": beginning-of-history
|
"\e[5~": beginning-of-history
|
||||||
"\033[I": beginning-of-history
|
"\e[I": beginning-of-history
|
||||||
|
|
||||||
## PgDown
|
## PgDown
|
||||||
"\033[6~": end-of-history
|
"\e[6~": end-of-history
|
||||||
"\033[G": end-of-history
|
"\e[G": end-of-history
|
||||||
|
|
||||||
## Ctrl+RighArrow
|
## Ctrl+RighArrow
|
||||||
"\033[1;5C": forward-word
|
"\e[1;5C": forward-word
|
||||||
"\033[5C": forward-word
|
"\e[5C": forward-word
|
||||||
"\033\033[C": forward-word
|
"\e\e[C": forward-word
|
||||||
|
|
||||||
## Ctrl+LeftArrow
|
## Ctrl+LeftArrow
|
||||||
"\033[1;5D": backward-word
|
"\e[1;5D": backward-word
|
||||||
"\033[5D": backward-word
|
"\e[5D": backward-word
|
||||||
"\033\033[D": backward-word
|
"\e\e[D": backward-word
|
||||||
|
|
||||||
## Terminal
|
## Terminal
|
||||||
$if term=rxvt
|
$if term=rxvt
|
||||||
"\033[7~": beginning-of-line
|
"\e[7~": beginning-of-line
|
||||||
"\033[8~": end-of-line
|
"\e[8~": end-of-line
|
||||||
"\033Oc": forward-word
|
"\eOc": forward-word
|
||||||
"\033Od": backward-word
|
"\eOd": backward-word
|
||||||
$endif
|
$endif
|
||||||
|
|||||||
@ -18,4 +18,4 @@ i toggle-option i
|
|||||||
^F right
|
^F right
|
||||||
^N down
|
^N down
|
||||||
^P up
|
^P up
|
||||||
\033f word-right
|
\ef word-right
|
||||||
|
|||||||
@ -10,7 +10,7 @@
|
|||||||
# shellcheck disable=SC2312
|
# shellcheck disable=SC2312
|
||||||
: "${USER:=$(id -un || printf '%s' "${HOME##*/}")}"
|
: "${USER:=$(id -un || printf '%s' "${HOME##*/}")}"
|
||||||
# shellcheck disable=SC2312
|
# shellcheck disable=SC2312
|
||||||
: "${UID:=$(id -u || awk -F ":" -v user="${USER}" -- '$1 == user {print $3}' \
|
: "${UID:=$(id -u || awk -F ":" -v user="${USER}" -- '/^user:/{print $3}' \
|
||||||
/etc/passwd)}"
|
/etc/passwd)}"
|
||||||
# shellcheck disable=SC2312
|
# shellcheck disable=SC2312
|
||||||
: "${HOSTNAME:=$(hostname)}"
|
: "${HOSTNAME:=$(hostname)}"
|
||||||
@ -28,7 +28,6 @@ mkdir -p -- "${XDG_CONFIG_HOME}" "${XDG_CACHE_HOME}" "${XDG_DATA_HOME}" \
|
|||||||
xdg_dirs="$(awk -- '/^[ ]*XDG_[A-Z]*_DIR=/{print "export " $1}' \
|
xdg_dirs="$(awk -- '/^[ ]*XDG_[A-Z]*_DIR=/{print "export " $1}' \
|
||||||
"${XDG_CONFIG_HOME}/user-dirs.dirs")"
|
"${XDG_CONFIG_HOME}/user-dirs.dirs")"
|
||||||
eval "${xdg_dirs}"
|
eval "${xdg_dirs}"
|
||||||
unset xdg_dirs
|
|
||||||
|
|
||||||
## Set directory to be used for coding.
|
## Set directory to be used for coding.
|
||||||
CODEDIR="${HOME}/src"
|
CODEDIR="${HOME}/src"
|
||||||
@ -157,7 +156,7 @@ if test -z "${SSH_AUTH_SOCK-}" && has ssh-agent; then
|
|||||||
ssh_agent_env="$(ssh-agent -s -a "${ssh_agent_sock}")"
|
ssh_agent_env="$(ssh-agent -s -a "${ssh_agent_sock}")"
|
||||||
eval "${ssh_agent_env}" >/dev/null
|
eval "${ssh_agent_env}" >/dev/null
|
||||||
unset ssh_agent_env
|
unset ssh_agent_env
|
||||||
printf '%s\n' "${SSH_AGENT_PID}" | tee -- "${ssh_agent_pid}" >/dev/null
|
printf '%s\n' "${SSH_AGENT_PID}" | tee "${ssh_agent_pid}" >/dev/null
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
unset ssh_agent_dir ssh_agent_sock ssh_agent_pid
|
unset ssh_agent_dir ssh_agent_sock ssh_agent_pid
|
||||||
@ -171,7 +170,6 @@ for f in "${XDG_CONFIG_HOME}/sh/profile.d"/*.sh; do
|
|||||||
# shellcheck disable=SC1090,SC1091
|
# shellcheck disable=SC1090,SC1091
|
||||||
! test -r "${f}" || . "${f}"
|
! test -r "${f}" || . "${f}"
|
||||||
done
|
done
|
||||||
unset f
|
|
||||||
|
|
||||||
## Source local profile.
|
## Source local profile.
|
||||||
# shellcheck disable=SC1090,SC1091
|
# shellcheck disable=SC1090,SC1091
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
## SPDX-FileCopyrightText: 2004 - 2022 Tim Pope <https://tpo.pe>
|
## SPDX-FileCopyrightText: 2004 - 2022 Tim Pope <https://tpo.pe>
|
||||||
## SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
## SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
##
|
##
|
||||||
## SPDX-License-Identifier: AGPL-3.0-or-later
|
## SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
@ -35,11 +35,8 @@ alias mv="mv -i"
|
|||||||
alias ls="ls -hF --group-directories-first --color=auto"
|
alias ls="ls -hF --group-directories-first --color=auto"
|
||||||
if has lsblk; then
|
if has lsblk; then
|
||||||
_lsblk_options="NAME,FSTYPE,LABEL,SIZE,FSAVAIL,FSUSE%,MOUNTPOINT"
|
_lsblk_options="NAME,FSTYPE,LABEL,SIZE,FSAVAIL,FSUSE%,MOUNTPOINT"
|
||||||
# shellcheck disable=SC2139
|
alias lsblk='lsblk -o ${_lsblk_options}'
|
||||||
alias lsblk="lsblk -o ${_lsblk_options}"
|
alias lsblku='lsblk -o ${_lsblk_options},UUID,PARTUUID'
|
||||||
# shellcheck disable=SC2139
|
|
||||||
alias lsblku="lsblk -o ${_lsblk_options},UUID,PARTUUID"
|
|
||||||
unset _lsblk_options
|
|
||||||
fi
|
fi
|
||||||
if ! grep --color 2>&1 | grep -qE -e "(unrecognized|unknown) option" &&
|
if ! grep --color 2>&1 | grep -qE -e "(unrecognized|unknown) option" &&
|
||||||
! grep --exclude 2>&1 | grep -qE -e "(unrecognized|unknown) option"
|
! grep --exclude 2>&1 | grep -qE -e "(unrecognized|unknown) option"
|
||||||
@ -113,8 +110,7 @@ has qubesctl && {
|
|||||||
alias qctlu="qctl --skip-dom0 --targets"
|
alias qctlu="qctl --skip-dom0 --targets"
|
||||||
qctlus(){
|
qctlus(){
|
||||||
test -n "${2-}" || return 1
|
test -n "${2-}" || return 1
|
||||||
# shellcheck disable=SC3058
|
qubesctl --skip-dom0 --targets "${1}" state.apply "${2}"
|
||||||
qubesctl --skip-dom0 --targets "${1}" state.apply "${@#"${1}"}"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
has gpg && alias gpgs="gpg --show-keys"
|
has gpg && alias gpgs="gpg --show-keys"
|
||||||
@ -128,10 +124,9 @@ has tmux && {
|
|||||||
alias tcl="clear && t clear-history" # clear buffer cus memory
|
alias tcl="clear && t clear-history" # clear buffer cus memory
|
||||||
tcla(){
|
tcla(){
|
||||||
## Clear all the panes of the current session.
|
## Clear all the panes of the current session.
|
||||||
for t_pane in $(tmux list-panes -s -F '#{pane_id}'); do
|
for _t_pane in $(tmux list-panes -s -F '#{pane_id}'); do
|
||||||
tmux clear-history -t "${t_pane}"
|
tmux clear-history -t "${_t_pane}"
|
||||||
done
|
done
|
||||||
unset t_pane
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
## }}}
|
## }}}
|
||||||
@ -154,206 +149,34 @@ then
|
|||||||
# shellcheck disable=SC2139,SC2140
|
# shellcheck disable=SC2139,SC2140
|
||||||
alias "g${key}"="git ${key}"
|
alias "g${key}"="git ${key}"
|
||||||
done
|
done
|
||||||
unset key g_alias
|
unset g_alias
|
||||||
fi
|
fi
|
||||||
## }}}
|
## }}}
|
||||||
## }}}
|
## }}}
|
||||||
## {{{ Prompt
|
## {{{ Prompt
|
||||||
# shellcheck disable=SC2034
|
## Set ability to color terminal.
|
||||||
_get_term_cap(){
|
# shellcheck disable=2034
|
||||||
## SGR
|
case "${TERM-}" in
|
||||||
_t_colors="$(tput colors)" 2>/dev/null || true
|
iterm|*-truecolor)
|
||||||
_t_sgr0="$(tput sgr0)" 2>/dev/null || true
|
export COLORTERM=truecolor; color_prompt=yes
|
||||||
_t_bold="$(tput bold)" 2>/dev/null || true
|
|
||||||
_t_dim="$(tput dim)" 2>/dev/null || true
|
|
||||||
_t_sitm="$(tput sitm)" 2>/dev/null || true
|
|
||||||
_t_smul="$(tput smul)" 2>/dev/null || true
|
|
||||||
_t_blink="$(tput blink)" 2>/dev/null || true
|
|
||||||
_t_rev="$(tput rev)" 2>/dev/null || true
|
|
||||||
_t_smso="$(tput rmso)" 2>/dev/null || true
|
|
||||||
_t_invis="$(tput invis)" 2>/dev/null || true
|
|
||||||
_t_ritm="$(tput ritm)" 2>/dev/null || true
|
|
||||||
_t_rmul="$(tput rmul)" 2>/dev/null || true
|
|
||||||
_t_rmso="$(tput rmso)" 2>/dev/null || true
|
|
||||||
_t_setaf_0="$(tput setaf 0)" 2>/dev/null || true
|
|
||||||
_t_setaf_1="$(tput setaf 1)" 2>/dev/null || true
|
|
||||||
_t_setaf_2="$(tput setaf 2)" 2>/dev/null || true
|
|
||||||
_t_setaf_3="$(tput setaf 3)" 2>/dev/null || true
|
|
||||||
_t_setaf_4="$(tput setaf 4)" 2>/dev/null || true
|
|
||||||
_t_setaf_5="$(tput setaf 5)" 2>/dev/null || true
|
|
||||||
_t_setaf_6="$(tput setaf 6)" 2>/dev/null || true
|
|
||||||
_t_setaf_7="$(tput setaf 7)" 2>/dev/null || true
|
|
||||||
_t_setab_0="$(tput setab 0)" 2>/dev/null || true
|
|
||||||
_t_setab_1="$(tput setab 1)" 2>/dev/null || true
|
|
||||||
_t_setab_2="$(tput setab 2)" 2>/dev/null || true
|
|
||||||
_t_setab_3="$(tput setab 3)" 2>/dev/null || true
|
|
||||||
_t_setab_4="$(tput setab 4)" 2>/dev/null || true
|
|
||||||
_t_setab_5="$(tput setab 5)" 2>/dev/null || true
|
|
||||||
_t_setab_6="$(tput setab 6)" 2>/dev/null || true
|
|
||||||
_t_setab_7="$(tput setab 7)" 2>/dev/null || true
|
|
||||||
## Movement
|
|
||||||
_t_ed="$(tput ed)" 2>/dev/null || true
|
|
||||||
_t_el="$(tput el)" 2>/dev/null || true
|
|
||||||
_t_home="$(tput home)" 2>/dev/null || true
|
|
||||||
_t_cnorm="$(tput cnorm)" 2>/dev/null || true
|
|
||||||
_t_civis="$(tput civis)" 2>/dev/null || true
|
|
||||||
_t_smcup="$(tput smcup)" 2>/dev/null || true
|
|
||||||
_t_rmcup="$(tput rmcup)" 2>/dev/null || true
|
|
||||||
_t_sc="$(tput sc)" 2>/dev/null || true
|
|
||||||
_t_clear="$(tput clear)" 2>/dev/null || true
|
|
||||||
## Extra
|
|
||||||
_t_cub1="$(tput cub1)" 2>/dev/null || true
|
|
||||||
_t_cud1="$(tput cud1)" 2>/dev/null || true
|
|
||||||
_t_ind="$(tput ind)" 2>/dev/null || true
|
|
||||||
_t_cr="$(tput cr)" 2>/dev/null || true
|
|
||||||
_t_u7="$(tput u7)" 2>/dev/null || true
|
|
||||||
_t_u8="$(tput u8)" 2>/dev/null || true
|
|
||||||
_t_u9="$(tput u9)" 2>/dev/null || true
|
|
||||||
}
|
|
||||||
|
|
||||||
_get_color_support(){
|
|
||||||
if test -n "${NO_COLOR-}"; then
|
|
||||||
color_support=-1
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
case "${COLORTERM-}" in
|
|
||||||
truecolor|24bit)
|
|
||||||
color_support=$((1 << 24))
|
|
||||||
return 0
|
|
||||||
;;
|
;;
|
||||||
*) ;;
|
*-color|*-256color|linux*)
|
||||||
esac
|
color_prompt=yes
|
||||||
if has tput; then
|
|
||||||
if tput RGB >/dev/null 2>&1; then
|
|
||||||
color_support=$((1 << 24))
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
color_support=${_t_colors}
|
|
||||||
if test -n "${color_support}"; then
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
## Color query from terminfo is relatively new, only available in ncurses
|
|
||||||
## since 2018. Below is a match based on terminfo revision 1.909 to query
|
|
||||||
## number of supported colors in case the terminfo database can't be
|
|
||||||
## queried.
|
|
||||||
case "${TERM-}" in
|
|
||||||
*?-truecolor*|*?-direct*)
|
|
||||||
## TODO: Some terminals such as iTerm should be in this list.
|
|
||||||
color_support=$((1 << 24))
|
|
||||||
;;
|
;;
|
||||||
*?-256color*|absolute|alacritty|Apple_Terminal|domterm|iterm|iterm2|\
|
""|dumb|vt100*|vt220*)
|
||||||
iTerm2.app|iTerm.app|kitty|mintty|ms-terminal|nsterm|nsterm-build309|\
|
color_prompt=no
|
||||||
nsterm-build326|nsterm-build343|nsterm-build361|nsterm-build400|\
|
|
||||||
nsterm-build440|scrt|securecrt|terminator|terminology|terminology-0.6.1|\
|
|
||||||
terminology-1.0.0|terminology-1.8.1|termite|vscode|xterm+256setaf|\
|
|
||||||
xterm.js)
|
|
||||||
color_support=256
|
|
||||||
;;
|
|
||||||
*?-88color*|rxvt-unicode)
|
|
||||||
color_support=88
|
|
||||||
;;
|
|
||||||
hpterm-color|wy370|wy370-101k|wy370-105k|wy370-EPC|wy370-nk|wy370-rv|\
|
|
||||||
wy370-vb|wy370-w|wy370-wvb|wyse370)
|
|
||||||
color_support=64
|
|
||||||
;;
|
|
||||||
d430c-dg-ccc|d430c-unix-25-ccc|d430c-unix-ccc|d430c-unix-s-ccc|\
|
|
||||||
d430c-unix-sr-ccc|d430c-unix-w-ccc|d430-dg-ccc|d430-unix-25-ccc|\
|
|
||||||
d430-unix-ccc|d430-unix-s-ccc|d430-unix-sr-ccc|d430-unix-w-ccc|dg+ccc|\
|
|
||||||
dgunix+ccc)
|
|
||||||
color_support=52
|
|
||||||
;;
|
|
||||||
*?-16color*|amiga-vnc|atari-color|atari_st-color|at-color|d430c-dg|\
|
|
||||||
d430c-unix|d430c-unix-25|d430c-unix-s|d430c-unix-sr|d430c-unix-w|d430-dg|\
|
|
||||||
d430-unix|d430-unix-25|d430-unix-s|d430-unix-sr|d430-unix-w|d470|d470-7b|\
|
|
||||||
d470c|d470c-7b|d470c-dg|d470-dg|dg+color|dg+fixed|dgmode+color|\
|
|
||||||
dgunix+fixed|hp2397|hp2397a|hp+color|ncr260wy325pp|ncr260wy325wpp|\
|
|
||||||
ncr260wy350pp|ncr260wy350wpp|nsterm-7-c|nsterm-7-c-s|nsterm-acs-c|\
|
|
||||||
nsterm-acs-c-s|nsterm-bce|nsterm+c|nsterm-c|nsterm-c-7|nsterm-c-acs|\
|
|
||||||
nsterm-c-s|nsterm-c-s-7|nsterm-c-s-acs|st52-color|tt52|tw52|\
|
|
||||||
tw52-color)
|
|
||||||
color_support=16
|
|
||||||
;;
|
|
||||||
*?-color*|color_xterm|386at|aixterm|alacritty+common|ansi|ansi80x25|\
|
|
||||||
ansi80x25-raw|ansi80x30|ansi80x43|ansi80x50|ansi80x60|ansi-emx|ansil|\
|
|
||||||
ansis|ansi.sys|ansi.sysk|ansisysk|ansi.sys-old|ansiw|arm100|arm100-am|\
|
|
||||||
arm100-w|arm100-wam|at386|aterm|att6386|beterm|bsdos-pc|bsdos-pc-nobold|\
|
|
||||||
bsdos-ppc|bterm|cons25|cons25-debian|cons25-iso8859|cons25-koi8-r|\
|
|
||||||
cons25l1|cons25r|cons25w|cons30|cons43|cons50|cons50-iso8859|\
|
|
||||||
cons50-koi8r|cons50l1|cons50r|cons60|cons60-iso|cons60-koi8r|cons60l1|\
|
|
||||||
cons60r|crt|crt-vt220|ctrm|cx|cx100|cygwin|cygwinB19|cygwinDBG|d220|\
|
|
||||||
d220-7b|d220-dg|d230|d230c|d230c-dg|d230-dg|darwin|darwin-100x37|\
|
|
||||||
darwin-112x37|darwin-128x40|darwin-128x48|darwin-144x48|darwin-160x64|\
|
|
||||||
darwin-200x64|darwin-200x75|darwin-256x96|darwin-80x25|darwin-80x30|\
|
|
||||||
darwin-90x30|darwin-b|darwin-f|darwin-f2|decansi|djgpp|djgpp204|dtterm|\
|
|
||||||
dumb-emacs-ansi|dvtm|emots|emx-base|Eterm|gnome|gnome-2007|gnome-2008|\
|
|
||||||
gnome-2012|gnome-fc5|gnome-rh62|gnome-rh72|gnome-rh80|gnome-rh90|gs6300|\
|
|
||||||
hft|hft-c|hft-c-old|hft-old|hterm|hurd|i3164|ibm3164|ibm5081|ibm5154|\
|
|
||||||
ibm6154|ibm8503|ibm8507|ibm8512|ibm8513|ibm8514|ibm8604|ibmpc3|ibmpc3r|\
|
|
||||||
interix|interix-nti|jaixterm|jfbterm|kon|kon2|konsole|konsole-base|\
|
|
||||||
konsole-linux|konsole-solaris|konsole-vt100|konsole-vt420pc|konsole-xf3x|\
|
|
||||||
konsole-xf4x|kterm|kterm-co|kvt|linux|linux2.2|linux2.6|linux2.6.26|\
|
|
||||||
linux3.0|linux-basic|linux-c|linux-c-nc|linux-koi8|linux-koi8r|linux-lat|\
|
|
||||||
linux-m1|linux-nic|linux-s|linux-vt|mgt|mgterm|minitel1|minitel1b|minix|\
|
|
||||||
minix-3.0|mintty+common|mlterm|mlterm2|mlterm3|mosh|mrxvt|ms-vt100+|\
|
|
||||||
ms-vt-utf8|mvterm|nansi.sys|nansisys|nansi.sysk|nansisysk|ncr260intan|\
|
|
||||||
ncr260intpp|ncr260intwan|ncr260intwpp|ncsa|ncsa-ns|ncsa-vt220|netbsd6|\
|
|
||||||
nsterm-7|nsterm-7-s|nsterm-acs|nsterm-acs-s|nsterm+c41|nsterm-old|\
|
|
||||||
nsterm-s|nsterm-s-7|nsterm-s-acs|ntconsole|ntconsole-100|\
|
|
||||||
ntconsole-100-nti|ntconsole-25|ntconsole-25-nti|ntconsole-25-w|\
|
|
||||||
ntconsole-25-w-vt|ntconsole-35|ntconsole-35-nti|ntconsole-35-w|\
|
|
||||||
ntconsole-50|ntconsole-50-nti|ntconsole-50-w|ntconsole-60|\
|
|
||||||
ntconsole-60-nti|ntconsole-60-w|ntconsole-w|ntconsole-w-vt|nxterm|old-st|\
|
|
||||||
opennt|opennt-100|opennt-100-nti|opennt-25|opennt-25-nti|opennt-25-w|\
|
|
||||||
opennt-25-w-vt|opennt-35|opennt-35-nti|opennt-35-w|opennt-50|\
|
|
||||||
opennt-50-nti|opennt-50-w|opennt-60|opennt-60-nti|opennt-60-w|opennt-nti|\
|
|
||||||
opennt-w|opennt-w-vt|pc3|pc3-bold|pc3r|pcansi|pcansi-25|pcansi25|\
|
|
||||||
pcansi-33|pcansi33|pcansi-43|pcansi43|pccon|pccon0|pc-minix|putty|\
|
|
||||||
putty-m1|putty-noapp|putty-sco|putty-screen|putty-vt100|qansi|qansi-g|\
|
|
||||||
qansi-m|qansi-t|qansi-w|qnx|qnx4|qnxm|qnxt|qnxt2|qnxt4|qnxw|rxvt|\
|
|
||||||
rxvt-cygwin|rxvt-cygwin-native|rxvt-xpm|scoansi|scoansi-new|scoansi-old|\
|
|
||||||
screen|screen4|screen5|screen-base|screen-bce|screen-bce.Eterm|\
|
|
||||||
screen-bce.gnome|screen-bce.konsole|screen-bce.linux|screen-bce.mrxvt|\
|
|
||||||
screen-bce.rxvt|screen-bce.xterm-new|screen.Eterm|screen.gnome|\
|
|
||||||
screen.konsole|screen.linux|screen.linux-m1|screen.linux-s|\
|
|
||||||
screen.minitel1|screen.minitel1b|screen.mlterm|screen.mrxvt|screen.putty|\
|
|
||||||
screen.putty-m1|screen.rxvt|screen-s|screen.teraterm|screen.vte|screen-w|\
|
|
||||||
screen.xterm-new|screen.xterm-xfree86|simpleterm|st|st-0.6|st-0.7|st-0.8|\
|
|
||||||
stterm|tek4205|teken|teken-2018|teken-2022|teken-sc|teken-vt|teraterm|\
|
|
||||||
teraterm2.3|teraterm4.59|teraterm4.97|ti928|ti928-8|ti_ansi|tmux|tw100|\
|
|
||||||
uwin|vt100+|vte|vte-2007|vte-2008|vte-2012|vte-2014|vte-2017|vte-2018|\
|
|
||||||
vtnt|vt-utf8|vv100|vwmterm|wsvt25|wsvt25m|wy350|wy350-vb|wy350-w|\
|
|
||||||
wy350-wvb|wyse350|wyse350-vb|wyse350-w|wyse350-wvb|xfce|xiterm|xnuppc|\
|
|
||||||
xnuppc-100x37|xnuppc-112x37|xnuppc-128x40|xnuppc-128x48|xnuppc-144x48|\
|
|
||||||
xnuppc-160x64|xnuppc-200x64|xnuppc-200x75|xnuppc-256x96|xnuppc-80x25|\
|
|
||||||
xnuppc-80x30|xnuppc-90x30|xnuppc-b|xnuppc+c|xnuppc-f|xnuppc-f2|xterm|\
|
|
||||||
xterm1|xterm-1002|xterm-1003|xterm-1005|xterm-1006|xterm-8bit|\
|
|
||||||
xterm-basic|xtermc|xterm-debian|xterm-hp|xterm-new|xterm-nic|xterm-noapp|\
|
|
||||||
xterm+nofkeys|xterm-p370|xterm-p371|xterm-sco|xterms-sun|xterm-sun|\
|
|
||||||
xterm-utf8|xterm-vt220|xterm-x10mouse|xterm-x11hilite|xterm-x11mouse|\
|
|
||||||
xterm-xf86-v32|xterm-xf86-v33|xterm-xf86-v333|xterm-xf86-v40|\
|
|
||||||
xterm-xf86-v43|xterm-xf86-v44|xterm-xfree86|xterm-xi|xwsh)
|
|
||||||
color_support=8
|
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
color_support=-1
|
color_prompt=no
|
||||||
;;
|
;;
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
_get_term_cap
|
|
||||||
_get_color_support
|
|
||||||
case "${color_support}" in
|
|
||||||
$((1 << 24))) export COLORTERM=truecolor; color_prompt=yes;;
|
|
||||||
[1-9]*) color_prompt=yes;;
|
|
||||||
*) color_prompt=no;;
|
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
## Colorise "ls" output.
|
||||||
if test "${color_prompt-}" = "yes"; then
|
if test "${color_prompt-}" = "yes"; then
|
||||||
if has dircolors; then
|
if has dircolors; then
|
||||||
## Use dircolors if available.
|
## Use dircolors if available.
|
||||||
if test -r "${XDG_CONFIG_HOME}/dircolors/dircolors"; then
|
if test -r "${XDG_CONFIG_HOME}/dircolors/dircolors"; then
|
||||||
dircolors="$(dircolors -b -- "${XDG_CONFIG_HOME}/dircolors/dircolors")"
|
dircolors="$(dircolors -b "${XDG_CONFIG_HOME}/dircolors/dircolors")"
|
||||||
eval "${dircolors}"
|
eval "${dircolors}"
|
||||||
else
|
else
|
||||||
dircolors="$(dircolors -b)"
|
dircolors="$(dircolors -b)"
|
||||||
@ -363,8 +186,7 @@ if test "${color_prompt-}" = "yes"; then
|
|||||||
## Fix bold on some terminals.
|
## Fix bold on some terminals.
|
||||||
case "${TERM-}" in
|
case "${TERM-}" in
|
||||||
xterm*|screen*)
|
xterm*|screen*)
|
||||||
LS_COLORS="$(printf '%s' "${LS_COLORS}" |
|
LS_COLORS="$(printf '%s\n' "${LS_COLORS}" | sed -e 's/01;3/00;9/g')"
|
||||||
sed -e 's/01;3\([0-9]\)/00;9\1/g')"
|
|
||||||
;;
|
;;
|
||||||
*) ;;
|
*) ;;
|
||||||
esac
|
esac
|
||||||
@ -375,21 +197,22 @@ if test "${color_prompt-}" = "yes"; then
|
|||||||
export CLICOLOR CLICOLOR_FORCE LSCOLORS
|
export CLICOLOR CLICOLOR_FORCE LSCOLORS
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
## Set gcc colors.
|
||||||
GCC_COLORS="error=00;31:warning=01;35:note=01;36:caret=01;32:locus=01"
|
GCC_COLORS="error=00;31:warning=01;35:note=01;36:caret=01;32:locus=01"
|
||||||
GCC_COLORS="${GCC_COLORS}:quote=01"
|
GCC_COLORS="${GCC_COLORS}:quote=01"
|
||||||
export GCC_COLORS
|
export GCC_COLORS
|
||||||
|
|
||||||
## Colors for programs that uses 'less' such as 'man'.
|
## Colors for programs that uses less such as 'man'.
|
||||||
GROFF_NO_SGR=1
|
GROFF_NO_SGR=1
|
||||||
LESS_TERMCAP_mb="${_t_bold}${_t_setaf_2}"
|
LESS_TERMCAP_mb="$(tput bold; tput setaf 2)" # begin blink
|
||||||
LESS_TERMCAP_md="${_t_bold}${_t_setaf_6}"
|
LESS_TERMCAP_md="$(tput bold; tput setaf 6)" # begin bold
|
||||||
LESS_TERMCAP_me="${_t_sgr0}"
|
LESS_TERMCAP_me="$(tput sgr0)" # reset bold/blink
|
||||||
LESS_TERMCAP_so="${_t_bold}${_t_setaf_7}${_t_setab_4}"
|
LESS_TERMCAP_so="$(tput bold; tput setaf 7; tput setab 4)" # begin rev video
|
||||||
LESS_TERMCAP_se="${_t_rmso}${_t_sgr0}"
|
LESS_TERMCAP_se="$(tput rmso; tput sgr0)" # reset rev video
|
||||||
LESS_TERMCAP_us="${_t_smul}${_t_bold}${_t_setaf_2}"
|
LESS_TERMCAP_us="$(tput smul; tput bold; tput setaf 2)" # begin underline
|
||||||
LESS_TERMCAP_ue="${_t_rmul}${_t_sgr0}"
|
LESS_TERMCAP_ue="$(tput rmul; tput sgr0)" # reset underline
|
||||||
LESS_TERMCAP_mr="${_t_rev}"
|
LESS_TERMCAP_mr="$(tput rev)" # revert
|
||||||
LESS_TERMCAP_mh="${_t_dim}"
|
LESS_TERMCAP_mh="$(tput dim)" # dimerize
|
||||||
export GROFF_NO_SGR
|
export GROFF_NO_SGR
|
||||||
export LESS_TERMCAP_mb LESS_TERMCAP_md LESS_TERMCAP_me
|
export LESS_TERMCAP_mb LESS_TERMCAP_md LESS_TERMCAP_me
|
||||||
export LESS_TERMCAP_so LESS_TERMCAP_se LESS_TERMCAP_us
|
export LESS_TERMCAP_so LESS_TERMCAP_se LESS_TERMCAP_us
|
||||||
@ -400,10 +223,9 @@ fi
|
|||||||
_get_prompt_time(){
|
_get_prompt_time(){
|
||||||
test -n "${SECONDS:-}" || return
|
test -n "${SECONDS:-}" || return
|
||||||
# shellcheck disable=SC2154
|
# shellcheck disable=SC2154
|
||||||
ptime="$((SECONDS-_saved_prompt_time))"
|
_ptime="$((SECONDS-_saved_prompt_time))"
|
||||||
printf '%02d:%02d:%02d' \
|
printf '%02d:%02d:%02d' \
|
||||||
"$((ptime/3600))" "$(((ptime%3600)/60))" "$((ptime%60))"
|
"$((_ptime/3600))" "$(((_ptime%3600)/60))" "$((_ptime%60))"
|
||||||
unset ptime
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_git_prompt_info(){
|
_git_prompt_info(){
|
||||||
@ -417,46 +239,46 @@ _git_prompt_info(){
|
|||||||
ref="$(git describe --tags --exact-match HEAD 2>/dev/null)"
|
ref="$(git describe --tags --exact-match HEAD 2>/dev/null)"
|
||||||
test "${ref-}" || ref="$(git rev-parse HEAD 2>/dev/null | cut -c 1-7)"
|
test "${ref-}" || ref="$(git rev-parse HEAD 2>/dev/null | cut -c 1-7)"
|
||||||
test "${ref-}" || return
|
test "${ref-}" || return
|
||||||
case "${color_support-}" in
|
# shellcheck disable=2039,3003
|
||||||
256|$((1 << 24))) branchcolor="$(printf '%b' "\033[38;5;31m")";;
|
case "${TERM-}" in
|
||||||
88) branchcolor="$(printf '%b' "\033[38;5;22m")";;
|
*-256color|xterm-kitty) branchcolor=$'\e[38;5;31m' ;;
|
||||||
[1-9]*) branchcolor="${_t_bold}${_t_setaf_4}";;
|
*-88color|rxvt-unicode) branchcolor=$'\e[38;5;22m' ;;
|
||||||
*) branchcolor="";;
|
*) branchcolor=$'\e[00;94m' ;;
|
||||||
esac
|
esac
|
||||||
if test -n "${ZSH_VERSION-}"; then
|
if test -n "${ZSH_VERSION-}"; then
|
||||||
# shellcheck disable=2016
|
# shellcheck disable=2016
|
||||||
if test "${color_prompt-}" = "yes"; then
|
if test "${color_prompt}" = "yes"; then
|
||||||
print -Pn '(%%{${branchcolor}%%}%20>...>${ref}%<<%%{${_t_sgr0}%%})'
|
print -Pn '(%%{${branchcolor}%%}%20>...>${ref}%<<%%{\e[00m%%})'
|
||||||
else
|
else
|
||||||
print -Pn '(%20>...>${ref}%<<)'
|
print -Pn '(%20>...>${ref}%<<)'
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
if test "${color_prompt-}" = "yes"; then
|
if test "${color_prompt}" = "yes"; then
|
||||||
printf '%s' "(${branchcolor}${ref}${_t_sgr0})"
|
printf '%s' "(${branchcolor}${ref}${reset_color})"
|
||||||
else
|
else
|
||||||
printf '%s' "(${ref})"
|
printf '%s' "(${ref})"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
unset ref branchcolor
|
unset ref
|
||||||
}
|
}
|
||||||
|
|
||||||
# shellcheck disable=SC2034
|
# shellcheck disable=SC2034
|
||||||
case "${color_support-}" in
|
reset_color="$(printf '%b' '\e[00m')"
|
||||||
256|$((1 << 24)))
|
|
||||||
usercolor="$(printf '%b' "\033[38;5;184m")"
|
# shellcheck disable=SC2034
|
||||||
dircolor="$(printf '%b' "\033[38;5;27m")"
|
## Use echotc Co? Only available by default for zsh, not bash.
|
||||||
|
case "${TERM-}" in
|
||||||
|
*-256color|xterm-kitty)
|
||||||
|
usercolor="$(printf '%b' "\e[38;5;184m")"
|
||||||
|
dircolor="$(printf '%b' "\e[38;5;27m")"
|
||||||
;;
|
;;
|
||||||
88)
|
*-88color|rxvt-unicode)
|
||||||
usercolor="$(printf '%b' "\033[38;5;56m")"
|
usercolor="$(printf '%b' "\e[38;5;56m")"
|
||||||
dircolor="$(printf '%b' "\033[38;5;23m")"
|
dircolor="$(printf '%b' "\e[38;5;23m")"
|
||||||
;;
|
|
||||||
[1-9]*)
|
|
||||||
usercolor="${_t_bold}${_t_setaf_3}"
|
|
||||||
dircolor="${_t_bold}${_t_setaf_4}"
|
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
usercolor=""
|
usercolor="$(printf '%b' "\e[00;93m")"
|
||||||
dircolor=""
|
dircolor="$(printf '%b' "\e[01;34m")"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
@ -468,19 +290,19 @@ esac
|
|||||||
# shellcheck disable=SC2034
|
# shellcheck disable=SC2034
|
||||||
uid="$(id -u)"
|
uid="$(id -u)"
|
||||||
if test "${uid}" = "0"; then
|
if test "${uid}" = "0"; then
|
||||||
usercolor="${_t_bold}${_t_setaf_7}"
|
usercolor="$(printf '%b' "\e[00;97m")"
|
||||||
ps1_symbol="#"
|
ps1_symbol="#"
|
||||||
fi
|
fi
|
||||||
unset uid
|
unset uid
|
||||||
|
|
||||||
|
## Do not colorize this prompt, Sh fails to count the correct number of
|
||||||
|
## characters on the prompt leading to problems.
|
||||||
user="$(id -un)"
|
user="$(id -un)"
|
||||||
if test "${color_prompt-}" = "yes"; then
|
if test "${color_prompt-}" = "yes"; then
|
||||||
PS1="[${usercolor}${user} $(hostname -s)${_t_sgr0}]${ps1_symbol} "
|
PS1="[${usercolor}${user} $(hostname -s)${reset_color}]${ps1_symbol} "
|
||||||
else
|
else
|
||||||
PS1="${user}@$(hostname -s)${ps1_symbol} "
|
PS1="${user}@$(hostname -s)${ps1_symbol} "
|
||||||
fi
|
fi
|
||||||
|
|
||||||
unset user uid
|
|
||||||
## }}}
|
## }}}
|
||||||
## {{{ External Functions
|
## {{{ External Functions
|
||||||
|
|
||||||
@ -491,7 +313,6 @@ source_readable(){
|
|||||||
# shellcheck disable=SC1090
|
# shellcheck disable=SC1090
|
||||||
! test -r "${_file}" || . "${_file}"
|
! test -r "${_file}" || . "${_file}"
|
||||||
done
|
done
|
||||||
unset _file
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_fzf_comprun() {
|
_fzf_comprun() {
|
||||||
@ -517,7 +338,6 @@ _fzf_comprun() {
|
|||||||
fzf --preview 'test -d {} || cat -- {}' "${@}"
|
fzf --preview 'test -d {} || cat -- {}' "${@}"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
unset _fzf_command
|
|
||||||
}
|
}
|
||||||
|
|
||||||
## }}}
|
## }}}
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env zsh
|
#!/usr/bin/env zsh
|
||||||
|
|
||||||
## SPDX-FileCopyrightText: 2004 - 2022 Tim Pope <https://tpo.pe>
|
## SPDX-FileCopyrightText: 2004 - 2022 Tim Pope <https://tpo.pe>
|
||||||
## SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
## SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
##
|
##
|
||||||
## SPDX-License-Identifier: AGPL-3.0-or-later
|
## SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
@ -20,7 +20,6 @@ source "$HOME/.zprofile"
|
|||||||
source "$ENV"
|
source "$ENV"
|
||||||
## }}}
|
## }}}
|
||||||
## {{{ Options
|
## {{{ Options
|
||||||
PROMPT_EOL_MARK='%b%B%S%#%s%b'
|
|
||||||
## - Quiet
|
## - Quiet
|
||||||
setopt no_beep
|
setopt no_beep
|
||||||
## - Words
|
## - Words
|
||||||
@ -75,10 +74,10 @@ if test "${color_prompt-}" = "yes"; then
|
|||||||
[[ "${COLORTERM-}" == (24bit|truecolor) ||
|
[[ "${COLORTERM-}" == (24bit|truecolor) ||
|
||||||
"${terminfo[colors]}" -eq '16777216' ]] || zmodload zsh/nearcolor
|
"${terminfo[colors]}" -eq '16777216' ]] || zmodload zsh/nearcolor
|
||||||
|
|
||||||
PS1="\$(resize-terminal)%F{magenta}[%{${usercolor}%}%n@%m%F{reset_color%}"
|
PS1="\$(resize-terminal)%F{magenta}[%{$usercolor%}%n@%m%F{reset_color%}"
|
||||||
PS1="${PS1} %{$dircolor%}%50<...<%~%<<%F{reset_color%}\$(_git_prompt_info)"
|
PS1="${PS1} %{$dircolor%}%50<...<%~%<<%F{reset_color%}\$(_git_prompt_info)"
|
||||||
PS1="${PS1}%F{magenta}]%F{reset_color}${newline-}${ps1_symbol} "
|
PS1="${PS1}%F{magenta}]%F{reset_color}${newline-}${ps1_symbol} "
|
||||||
RPS1="%(?..(%F{red%}%?%F{reset_color%}%)%<<)"
|
RPS1="%(?..(%{"$'\e[31m'"%}%?%{$reset_color%}%)%<<)"
|
||||||
else
|
else
|
||||||
PS1="\$(resize-terminal)[%n@%M %~\$(_git_prompt_info)]${newline}"
|
PS1="\$(resize-terminal)[%n@%M %~\$(_git_prompt_info)]${newline}"
|
||||||
PS1="${PS1}${ps1_symbol} "
|
PS1="${PS1}${ps1_symbol} "
|
||||||
@ -91,8 +90,8 @@ _set_title() {
|
|||||||
*install*)
|
*install*)
|
||||||
hash -r ;;
|
hash -r ;;
|
||||||
esac
|
esac
|
||||||
print -Pn '\033]1;%l@%m${1+*}\a'
|
print -Pn '\e]1;%l@%m${1+*}\a'
|
||||||
print -Pn '\033]2;%n@%m:%~'
|
print -Pn '\e]2;%n@%m:%~'
|
||||||
if test -n "${1:-}"; then
|
if test -n "${1:-}"; then
|
||||||
print -Pnr ' (%24>..>$1%>>)' | tr '\0-\037' '?'
|
print -Pnr ' (%24>..>$1%>>)' | tr '\0-\037' '?'
|
||||||
fi
|
fi
|
||||||
@ -100,28 +99,29 @@ _set_title() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
case "${TERM-}" in
|
case "${TERM-}" in
|
||||||
screen*|tmux*)
|
screen*)
|
||||||
precmd() {
|
precmd() {
|
||||||
_set_title "$@"
|
_set_title "$@"
|
||||||
if [ "${STY:-}" -o "${TMUX:-}" ]; then
|
if [ "${STY:-}" -o "${TMUX:-}" ]; then
|
||||||
print -Pn '\033k@\033\\'
|
# print -Pn "\e]1;\a\e]1;@%m\a"
|
||||||
|
print -Pn '\ek@\e\\'
|
||||||
else
|
else
|
||||||
print -Pn '\033k@%m\033\\'
|
print -Pn '\ek@%m\e\\'
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
preexec() {
|
preexec() {
|
||||||
_set_title "$@"
|
_set_title "$@"
|
||||||
return 0
|
print -n "\ek"
|
||||||
#print -Pnr '%10>..>$1' | tr '\0-\037' '?'
|
print -Pnr '%10>..>$1' | tr '\0-\037' '?'
|
||||||
#if [ "${STY:-}" -o "${TMUX:-}" ]; then
|
if [ "${STY:-}" -o "${TMUX:-}" ]; then
|
||||||
# print -Pn '\033k@\033\\'
|
print -Pn '@\e\\'
|
||||||
#else
|
else
|
||||||
# print -Pn '\033k@%m\033\\'
|
print -Pn '@%m\e\\'
|
||||||
#fi
|
fi
|
||||||
}
|
}
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*?-direct*|xterm*|rxvt*|Eterm*|kterm*|putty*|dtterm*|ansi*|cygwin*)
|
xterm*|rxvt*|Eterm*|kterm*|putty*|dtterm*|ansi*|cygwin*)
|
||||||
precmd () { _set_title "$@" }
|
precmd () { _set_title "$@" }
|
||||||
preexec() { _set_title "$@" }
|
preexec() { _set_title "$@" }
|
||||||
;;
|
;;
|
||||||
@ -134,8 +134,8 @@ case "${TERM-}" in
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
unset hostcolor hostletter hostcode dircolor usercolor usercode newline \
|
unset hostcolor hostletter hostcode dircolor usercolor usercode reset_color
|
||||||
ps1_symbol
|
unset newline
|
||||||
## }}}
|
## }}}
|
||||||
## {{{ Completions
|
## {{{ Completions
|
||||||
|
|
||||||
@ -224,10 +224,9 @@ if test "${color_prompt-}" = "yes"; then
|
|||||||
## Enable auto-suggestions based on the history
|
## Enable auto-suggestions based on the history
|
||||||
if test -f /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh; then
|
if test -f /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh; then
|
||||||
ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE=30
|
ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE=30
|
||||||
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="standout"
|
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=7,bg=8,underline"
|
||||||
typeset -a ZSH_AUTOSUGGEST_CLEAR_WIDGETS
|
typeset -a ZSH_AUTOSUGGEST_CLEAR_WIDGETS
|
||||||
ZSH_AUTOSUGGEST_STRATEGY=(history completion)
|
ZSH_AUTOSUGGEST_CLEAR_WIDGETS+=(bracketed-paste)
|
||||||
ZSH_AUTOSUGGEST_CLEAR_WIDGETS+=(bracketed-paste accept-line)
|
|
||||||
source /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh
|
source /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh
|
||||||
fi
|
fi
|
||||||
## Highlight commands as you type
|
## Highlight commands as you type
|
||||||
@ -237,6 +236,7 @@ if test "${color_prompt-}" = "yes"; then
|
|||||||
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern regexp)
|
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern regexp)
|
||||||
typeset -A ZSH_HIGHLIGHT_STYLES
|
typeset -A ZSH_HIGHLIGHT_STYLES
|
||||||
ZSH_HIGHLIGHT_STYLES[unknown-token]='fg=red'
|
ZSH_HIGHLIGHT_STYLES[unknown-token]='fg=red'
|
||||||
|
ZSH_HIGHLIGHT_STYLES[default]='fg=white'
|
||||||
ZSH_HIGHLIGHT_STYLES[alias]='fg=cyan'
|
ZSH_HIGHLIGHT_STYLES[alias]='fg=cyan'
|
||||||
ZSH_HIGHLIGHT_STYLES[function]='fg=cyan'
|
ZSH_HIGHLIGHT_STYLES[function]='fg=cyan'
|
||||||
ZSH_HIGHLIGHT_STYLES[builtin]='fg=green'
|
ZSH_HIGHLIGHT_STYLES[builtin]='fg=green'
|
||||||
@ -301,10 +301,10 @@ function clear-screen-and-scrollback() {
|
|||||||
esac
|
esac
|
||||||
test -n "${TTY-}" || return
|
test -n "${TTY-}" || return
|
||||||
echoti civis >"${TTY-}"
|
echoti civis >"${TTY-}"
|
||||||
printf '%b' "\033[H\033[2J" >"${TTY-}"
|
printf '%b' "\e[H\e[2J" >"${TTY-}"
|
||||||
zle .reset-prompt
|
zle .reset-prompt
|
||||||
zle -R
|
zle -R
|
||||||
printf '%b' "\033[3J" >"${TTY-}"
|
printf '%b' "\e[3J" >"${TTY-}"
|
||||||
echoti cnorm >"${TTY-}"
|
echoti cnorm >"${TTY-}"
|
||||||
}
|
}
|
||||||
zle -N clear-screen-and-scrollback
|
zle -N clear-screen-and-scrollback
|
||||||
@ -340,9 +340,9 @@ case "${TERM-}" in
|
|||||||
""|dumb|linux*|vt100*|vt220*) ;;
|
""|dumb|linux*|vt100*|vt220*) ;;
|
||||||
*)
|
*)
|
||||||
zle-keymap-select zle-line-init() {
|
zle-keymap-select zle-line-init() {
|
||||||
case "${KEYMAP:-}" in
|
case $KEYMAP in
|
||||||
vicmd) print -n -- "\033[2 q";;
|
vicmd) print -n -- "\e[2 q";;
|
||||||
viins|main) print -n -- "\033[5 q";;
|
viins|main) print -n -- "\e[5 q";;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
zle reset-prompt
|
zle reset-prompt
|
||||||
@ -350,7 +350,7 @@ case "${TERM-}" in
|
|||||||
}
|
}
|
||||||
|
|
||||||
zle-line-finish() {
|
zle-line-finish() {
|
||||||
print -n -- "\033[2 q"
|
print -n -- "\e[2 q"
|
||||||
}
|
}
|
||||||
|
|
||||||
zle -N zle-line-init
|
zle -N zle-line-init
|
||||||
@ -420,56 +420,56 @@ bindkey -M menuselect "^M" accept-line
|
|||||||
## https://invisible-island.net/xterm/xterm-function-keys.html
|
## https://invisible-island.net/xterm/xterm-function-keys.html
|
||||||
##
|
##
|
||||||
## Shit+Tab
|
## Shit+Tab
|
||||||
bindkey-multi emacs viins menuselect -- "\033[Z" "${terminfo[kcbt]}" \
|
bindkey-multi emacs viins menuselect -- "\E[Z" "${terminfo[kcbt]}" \
|
||||||
-- reverse-menu-complete
|
-- reverse-menu-complete
|
||||||
## Backspace
|
## Backspace
|
||||||
bindkey-multi emacs viins vicmd menuselect -- "^H" "^?" "${terminfo[kbs]}" \
|
bindkey-multi emacs viins vicmd menuselect -- "^H" "^?" "${terminfo[kbs]}" \
|
||||||
-- backward-delete-char
|
-- backward-delete-char
|
||||||
## Home
|
## Home
|
||||||
bindkey-multi emacs viins vicmd -- "\033[1~" "\033[7~" "\033[H" "\033OH" \
|
bindkey-multi emacs viins vicmd -- "\E[1~" "\E[7~" "\E[H" "\EOH" \
|
||||||
"${terminfo[khome]}" \
|
"${terminfo[khome]}" \
|
||||||
-- beginning-of-line
|
-- beginning-of-line
|
||||||
## Insert
|
## Insert
|
||||||
bindkey-multi emacs viins vicmd -- "\033[2~" "\033[L" "${terminfo[kich1]}" \
|
bindkey-multi emacs viins vicmd -- "\E[2~" "\E[L" "${terminfo[kich1]}" \
|
||||||
-- overwrite-mode
|
-- overwrite-mode
|
||||||
## Delete
|
## Delete
|
||||||
bindkey-multi emacs viins vicmd -- "\033[3~" "\033[P" "\033OP" \
|
bindkey-multi emacs viins vicmd -- "\E[3~" "\E[P" "\EOP" \
|
||||||
"${terminfo[kdch1]}" \
|
"${terminfo[kdch1]}" \
|
||||||
-- vi-delete-char
|
-- vi-delete-char
|
||||||
## End
|
## End
|
||||||
bindkey-multi emacs viins vicmd -- "\033[4~" "\033[8~" "\033[F" "\033OF" \
|
bindkey-multi emacs viins vicmd -- "\E[4~" "\E[8~" "\E[F" "\EOF" \
|
||||||
"${terminfo[kend]}" \
|
"${terminfo[kend]}" \
|
||||||
-- end-of-line
|
-- end-of-line
|
||||||
## PgUp
|
## PgUp
|
||||||
bindkey-multi emacs viins -- "\033[5~" "\033[I" "${terminfo[kpp]}" \
|
bindkey-multi emacs viins -- "\E[5~" "\E[I" "${terminfo[kpp]}" \
|
||||||
-- beginning-of-buffer-or-history
|
-- beginning-of-buffer-or-history
|
||||||
## PgDown
|
## PgDown
|
||||||
bindkey-multi emacs viins -- "\033[6~" "\033[G" "${terminfo[knp]}" \
|
bindkey-multi emacs viins -- "\E[6~" "\E[G" "${terminfo[knp]}" \
|
||||||
-- end-of-buffer-or-history
|
-- end-of-buffer-or-history
|
||||||
## Up arrow
|
## Up arrow
|
||||||
bindkey-multi emacs viins vicmd -- "\033[A" "\033OA" "${terminfo[kcuu1]}" \
|
bindkey-multi emacs viins vicmd -- "\E[A" "\EOA" "${terminfo[kcuu1]}" \
|
||||||
-- up-line-or-history
|
-- up-line-or-history
|
||||||
## Down arrow
|
## Down arrow
|
||||||
bindkey-multi emacs viins vicmd -- "\033[B" "\033OB" "${terminfo[kcud1]}" \
|
bindkey-multi emacs viins vicmd -- "\E[B" "\EOB" "${terminfo[kcud1]}" \
|
||||||
-- down-line-or-history
|
-- down-line-or-history
|
||||||
## Right arrow
|
## Right arrow
|
||||||
bindkey-multi emacs viins vicmd -- "\033[1C" "\033[C" "\033OC" \
|
bindkey-multi emacs viins vicmd -- "\E[1C" "\E[C" "\EOC" \
|
||||||
"${terminfo[kcuf1]}" \
|
"${terminfo[kcuf1]}" \
|
||||||
-- forward-char
|
-- forward-char
|
||||||
## Left arrow
|
## Left arrow
|
||||||
bindkey-multi emacs viins vicmd -- "\033[D" "\033OD" "${terminfo[kcub1]}" \
|
bindkey-multi emacs viins vicmd -- "\E[D" "\EOD" "${terminfo[kcub1]}" \
|
||||||
-- backward-char
|
-- backward-char
|
||||||
## Ctrl-Delete
|
## Ctrl-Delete
|
||||||
bindkey-multi emacs viins vicmd -- "\033[3;5~" "\033[3\^" "${terminfo[kDC5]}" \
|
bindkey-multi emacs viins vicmd -- "\E[3;5~" "\E[3\^" "${terminfo[kDC5]}" \
|
||||||
-- kill-word
|
-- kill-word
|
||||||
## Ctrl-RightArrow
|
## Ctrl-RightArrow
|
||||||
bindkey-multi emacs viins vicmd -- "\033[1;5C" "\0330c" "${terminfo[kRIT5]}" \
|
bindkey-multi emacs viins vicmd -- "\E[1;5C" "\E0c" "${terminfo[kRIT5]}" \
|
||||||
-- forward-word
|
-- forward-word
|
||||||
## Ctrl-LeftArrow
|
## Ctrl-LeftArrow
|
||||||
bindkey-multi emacs viins vicmd -- "\033[1;5D" "\0330d" "${terminfo[kLFT5]}" \
|
bindkey-multi emacs viins vicmd -- "\E[1;5D" "\E0d" "${terminfo[kLFT5]}" \
|
||||||
-- backward-word
|
-- backward-word
|
||||||
## F11
|
## F11
|
||||||
bindkey-multi emacs viins -- "\033[23~" "${terminfo[kf11]}" -- new-screen
|
bindkey-multi emacs viins -- "\E[23~" "${terminfo[kf11]}" -- new-screen
|
||||||
|
|
||||||
autoload -Uz edit-command-line
|
autoload -Uz edit-command-line
|
||||||
zle -N edit-command-line
|
zle -N edit-command-line
|
||||||
@ -477,7 +477,7 @@ bindkey -M emacs "^[e" edit-command-line
|
|||||||
bindkey -M emacs "^X^E" edit-command-line
|
bindkey -M emacs "^X^E" edit-command-line
|
||||||
bindkey -M vicmd "^E" edit-command-line
|
bindkey -M vicmd "^E" edit-command-line
|
||||||
|
|
||||||
bindkey -M emacs "\033a" change-first-word
|
bindkey -M emacs "\ea" change-first-word
|
||||||
bindkey -M emacs "^XD" describe-key-briefly
|
bindkey -M emacs "^XD" describe-key-briefly
|
||||||
|
|
||||||
for binding in ${(f)$(bindkey -M emacs|grep -e '^"\^X')}; do
|
for binding in ${(f)$(bindkey -M emacs|grep -e '^"\^X')}; do
|
||||||
|
|||||||
@ -29,7 +29,7 @@ for prog in "${@}"; do
|
|||||||
test -x "${cmd}" || continue
|
test -x "${cmd}" || continue
|
||||||
|
|
||||||
case "${action-}" in
|
case "${action-}" in
|
||||||
show) printf '%s\n' "${cmd}"; unset cmd; exit 0;;
|
show) printf '%s\n' "${cmd}"; exit 0;;
|
||||||
*) exit 0;;
|
*) exit 0;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
## SPDX-FileCopyrightText: 2024 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
## SPDX-FileCopyrightText: 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
##
|
##
|
||||||
## SPDX-License-Identifier: GFDL-1.3-or-later
|
## SPDX-License-Identifier: GFDL-1.3-or-later
|
||||||
##
|
##
|
||||||
@ -14,10 +14,8 @@ if test -n "${TERM_RESIZE_DISABLE:-}"; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
test -t 0 || exit 0
|
test -t 0 || exit 0
|
||||||
case "${TERM-}" in
|
|
||||||
dumb) exit 0;;
|
msg_unsupported="error: cannot resize screen: unsupported terminal emulator"
|
||||||
*);;
|
|
||||||
esac
|
|
||||||
|
|
||||||
## If argument is provided, allow user to bypass tty check.
|
## If argument is provided, allow user to bypass tty check.
|
||||||
if test "${#}" -eq 0; then
|
if test "${#}" -eq 0; then
|
||||||
@ -48,17 +46,9 @@ if test "${#}" -eq 0; then
|
|||||||
unset term_file_active
|
unset term_file_active
|
||||||
fi
|
fi
|
||||||
|
|
||||||
get_caps(){
|
|
||||||
sc="$(tput sc || printf '%b' '\0337')"
|
|
||||||
rc="$(tput rc || printf '%b' '\0338')"
|
|
||||||
cup="$(tput cup 99999 99999 || printf '%b' '\033[99999;99999H')"
|
|
||||||
csr="$(tput csr || printf '%b' '\033[r')"
|
|
||||||
gc="$(tput u7 || printf '%b' '\033[6n')"
|
|
||||||
}
|
|
||||||
|
|
||||||
## POSIX compliant.
|
## POSIX compliant.
|
||||||
# shellcheck disable=SC3045
|
# shellcheck disable=SC3045
|
||||||
if ! (printf '%s\n' "R" | read -r -t 1 -sd R 2>/dev/null); then
|
if ! printf '%s\n' "R" | read -r -t 1 -sd R 2>/dev/null; then
|
||||||
## Fast but depends on XTerm.
|
## Fast but depends on XTerm.
|
||||||
if has resize; then
|
if has resize; then
|
||||||
resize_cmd="$(resize)"
|
resize_cmd="$(resize)"
|
||||||
@ -66,21 +56,18 @@ if ! (printf '%s\n' "R" | read -r -t 1 -sd R 2>/dev/null); then
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
## Slow due to heavy stty calls.
|
## Slow due to heavy stty calls.
|
||||||
get_caps
|
|
||||||
termios="$(stty -g)"
|
termios="$(stty -g)"
|
||||||
stty raw -echo min 0 time 1
|
stty raw -echo min 0 time 1
|
||||||
printf '%s' "${sc}${csr}${cup}${gc}${rc}" >/dev/tty
|
printf '\0337\033[r\033[99999;99999H\033[6n\0338' >/dev/tty
|
||||||
IFS='[;R' read -r _ rows cols _ </dev/tty
|
IFS='[;R' read -r _ rows cols _ </dev/tty
|
||||||
stty "${termios}" cols "${cols}" rows "${rows}"
|
stty "${termios}" cols "${cols}" rows "${rows}"
|
||||||
unset termios
|
unset termios
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
msg_unsupported="error: cannot resize screen: unsupported terminal emulator"
|
|
||||||
## Non-POSIX compliant and fast.
|
## Non-POSIX compliant and fast.
|
||||||
get_caps
|
|
||||||
stty -echo
|
stty -echo
|
||||||
printf '%s' "${sc}${csr}${cup}${gc}${rc}" >/dev/tty
|
printf '\e7\e[r\033[99999;99999H\e[6n\e8' >/dev/tty
|
||||||
# shellcheck disable=3045,SC2034
|
# shellcheck disable=3045,SC2034
|
||||||
IFS='[;R' read -r -t 1 -s -d R _ rows cols _ </dev/tty || {
|
IFS='[;R' read -r -t 1 -s -d R _ rows cols _ </dev/tty || {
|
||||||
printf '%s\n' "${msg_unsupported}" >&2
|
printf '%s\n' "${msg_unsupported}" >&2
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
## tmux.conf
|
## tmux.conf
|
||||||
|
|
||||||
## SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
## SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
##
|
##
|
||||||
## SPDX-License-Identifier: AGPL-3.0-or-later
|
## SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
@ -17,13 +17,8 @@ set-option -g history-limit 10000
|
|||||||
set-option -g repeat-time 2000
|
set-option -g repeat-time 2000
|
||||||
set-option -g escape-time 50
|
set-option -g escape-time 50
|
||||||
set-option -g status-position top
|
set-option -g status-position top
|
||||||
run-shell '\
|
set-option -g default-terminal screen-256color
|
||||||
colors=$(tput colors) || true 2>/dev/null; \
|
# set-option -g default-terminal tmux-256color # on newer ncurses
|
||||||
if test "$colors" -lt 256; then \
|
|
||||||
tmux set-option -g default-terminal tmux; \
|
|
||||||
elif test "$colors" -ge 256; then \
|
|
||||||
tmux set-option -g default-terminal tmux-256color; \
|
|
||||||
fi'
|
|
||||||
set-option -g display-panes-time 2000
|
set-option -g display-panes-time 2000
|
||||||
set-option -g display-time 2000
|
set-option -g display-time 2000
|
||||||
set-option -g focus-events on
|
set-option -g focus-events on
|
||||||
@ -58,7 +53,7 @@ set-option -g status-right-length '40'
|
|||||||
set-option -g status-right-style 'fg=brightcyan,bg=black'
|
set-option -g status-right-style 'fg=brightcyan,bg=black'
|
||||||
|
|
||||||
## Terminal capabilities and update environment
|
## Terminal capabilities and update environment
|
||||||
set-option -g terminal-overrides '*256color:Tc,xterm*:XT:Cc=\033]12;%p1%s\007:Cr=\033]112\007:Cs=\033[%p1%d q,rxvt-unicode*:XT:sitm@:ritm@'
|
set-option -g terminal-overrides '*256color:Tc,xterm*:XT:Cc=\E]12;%p1%s\007:Cr=\E]112\007:Cs=\E[%p1%d q,rxvt-unicode*:XT:sitm@:ritm@'
|
||||||
set-option -g update-environment "DISPLAY SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION WINDOWID XAUTHORITY XDG_CURRENT_DESKTOP XDG_SESSION_DESKTOP"
|
set-option -g update-environment "DISPLAY SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION WINDOWID XAUTHORITY XDG_CURRENT_DESKTOP XDG_SESSION_DESKTOP"
|
||||||
set-environment -gu DBUS_SESSION_BUS_ADDRESS
|
set-environment -gu DBUS_SESSION_BUS_ADDRESS
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
" SPDX-FileCopyrightText: 2004 - 2022 Tim Pope <https://tpo.pe>
|
" SPDX-FileCopyrightText: 2004 - 2022 Tim Pope <https://tpo.pe>
|
||||||
" SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
" SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
"
|
"
|
||||||
" SPDX-License-Identifier: Vim
|
" SPDX-License-Identifier: Vim
|
||||||
"
|
"
|
||||||
@ -556,9 +556,6 @@ if (&t_Co > 2 || has('gui_running')) && has('syntax')
|
|||||||
endif
|
endif
|
||||||
if has('vim_starting')
|
if has('vim_starting')
|
||||||
set list
|
set list
|
||||||
if has('termguicolors') && &t_Co > 256
|
|
||||||
setglobal termguicolors
|
|
||||||
endif
|
|
||||||
if !exists('g:colors_name')
|
if !exists('g:colors_name')
|
||||||
colorscheme vividchalk
|
colorscheme vividchalk
|
||||||
endif
|
endif
|
||||||
|
|||||||
@ -19,9 +19,7 @@ fi
|
|||||||
## If running normal OS or Qubes: Dom0, apply settings.
|
## If running normal OS or Qubes: Dom0, apply settings.
|
||||||
# shellcheck disable=3028
|
# shellcheck disable=3028
|
||||||
hostname="${HOSTNAME:-$(hostname)}"
|
hostname="${HOSTNAME:-$(hostname)}"
|
||||||
if ! command -v qubesdb-read >/dev/null || test "${hostname}" = "dom0" ||
|
if ! command -v qubesdb-read >/dev/null || test "${hostname}" = "dom0"; then
|
||||||
test -f /var/run/qubes-service/guivm
|
|
||||||
then
|
|
||||||
## Decrease key repeat delay to X ms.
|
## Decrease key repeat delay to X ms.
|
||||||
## Increase key repeat rate to Y per second.
|
## Increase key repeat rate to Y per second.
|
||||||
xset r rate 275 60
|
xset r rate 275 60
|
||||||
@ -34,7 +32,6 @@ then
|
|||||||
|
|
||||||
#qvm-prefs dom0 keyboard_layout "us+dvorak+grp:win_space_toggle,ctrl:nocaps"
|
#qvm-prefs dom0 keyboard_layout "us+dvorak+grp:win_space_toggle,ctrl:nocaps"
|
||||||
fi
|
fi
|
||||||
unset hostname
|
|
||||||
|
|
||||||
## Autostart desktop applications if the WM does not.
|
## Autostart desktop applications if the WM does not.
|
||||||
desktop_autostart(){
|
desktop_autostart(){
|
||||||
@ -48,34 +45,11 @@ desktop_autostart(){
|
|||||||
|
|
||||||
for f in "${autostart_etc}"/*.desktop "${autostart_home}"/*.desktop; do
|
for f in "${autostart_etc}"/*.desktop "${autostart_home}"/*.desktop; do
|
||||||
test -r "${f}" || continue
|
test -r "${f}" || continue
|
||||||
## TODO: check other conditions: (Not|Only)ShowIn
|
|
||||||
# shellcheck disable=SC2091
|
# shellcheck disable=SC2091
|
||||||
autostart_hidden="$(awk -F '=' -- '/^Hidden=/{print $2}' "${f}")"
|
|
||||||
if test "${autostart_hidden}" = "true"; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
autostart_tryexec="$(awk -F '=' -- '/^TryExec=/{print $2}' "${f}")"
|
|
||||||
if test -n "${autostart_tryexec}"; then
|
|
||||||
case "${autostart_tryexec}" in
|
|
||||||
/*) test -x "${autostart_tryexec}" || continue;;
|
|
||||||
*) command -v "${autostart_tryexec}" >/dev/null || continue;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
autostart_path="$(awk -F '=' -- '/^Path=/{print $2}' "${f}")"
|
|
||||||
autostart_exec="$(awk -F '=' -- '/^Exec=/{print $2}' "${f}")"
|
autostart_exec="$(awk -F '=' -- '/^Exec=/{print $2}' "${f}")"
|
||||||
case "${autostart_exec}" in
|
command -v "${autostart_exec%% *}" >/dev/null || continue
|
||||||
/*) test -x "${autostart_exec}" || continue;;
|
|
||||||
*) command -v "${autostart_exec}" >/dev/null || continue;;
|
|
||||||
esac
|
|
||||||
if test -n "${autostart_path}"; then
|
|
||||||
if ! test -d "${autostart_path}"; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
cd "${autostart_path}" || continue
|
|
||||||
fi
|
|
||||||
${autostart_exec} &
|
${autostart_exec} &
|
||||||
done
|
done
|
||||||
unset f autostart_hidden autostart_tryexec autostart_exec autostart_path
|
|
||||||
}
|
}
|
||||||
|
|
||||||
## Source Xorg profiles.
|
## Source Xorg profiles.
|
||||||
@ -85,7 +59,6 @@ if test -r "${HOME}/.xprofile.local"; then
|
|||||||
# shellcheck disable=SC1090,SC1091
|
# shellcheck disable=SC1090,SC1091
|
||||||
! test -r "${x11_profile}" || . "${x11_profile}"
|
! test -r "${x11_profile}" || . "${x11_profile}"
|
||||||
done
|
done
|
||||||
unset x11_profile
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
: "${wm_list:="dwm"}"
|
: "${wm_list:="dwm"}"
|
||||||
@ -96,7 +69,6 @@ for wm in ${wm_list}; do
|
|||||||
while true; do
|
while true; do
|
||||||
xroot_name="$(display-statusbar)"
|
xroot_name="$(display-statusbar)"
|
||||||
xsetroot -name "${xroot_name}"
|
xsetroot -name "${xroot_name}"
|
||||||
unset xroot_name
|
|
||||||
sleep 60
|
sleep 60
|
||||||
done &
|
done &
|
||||||
fi
|
fi
|
||||||
@ -104,7 +76,5 @@ for wm in ${wm_list}; do
|
|||||||
${wm} &
|
${wm} &
|
||||||
wm_pid="${!}"
|
wm_pid="${!}"
|
||||||
done
|
done
|
||||||
unset wm
|
|
||||||
|
|
||||||
test -z "${wm_pid:-}" || wait "${wm_pid}"
|
test -z "${wm_pid:-}" || wait "${wm_pid}"
|
||||||
unset wm_pid
|
|
||||||
|
|||||||
@ -1,11 +1,12 @@
|
|||||||
! ~/.Xresources
|
! ~/.Xresources
|
||||||
! vim:set foldmethod=expr foldexpr=getline(v\:lnum)=~'^!##'?'>1'\:'=':
|
|
||||||
! SPDX-FileCopyrightText: 2004 - 2016 Tim Pope <https://tpo.pe>
|
! SPDX-FileCopyrightText: 2004 - 2016 Tim Pope <https://tpo.pe>
|
||||||
! SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
! SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
!
|
!
|
||||||
! SPDX-License-Identifier: AGPL-3.0-or-later
|
! SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
!
|
|
||||||
! Credits: https://github.com/tpope/dotfiles/blob/master/.Xresources
|
! Credits: https://github.com/tpope/dotfiles/blob/master/.Xresources
|
||||||
|
! vim:set foldmethod=expr foldexpr=getline(v\:lnum)=~'^!##'?'>1'\:'=':
|
||||||
|
|
||||||
*international: true
|
*international: true
|
||||||
*customization: -color
|
*customization: -color
|
||||||
@ -23,6 +24,100 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
! http://www.calmar.ws/vim/256-xterm-24bit-rgb-color-chart.html
|
||||||
|
! https://en.wikipedia.org/wiki/X11_color_names
|
||||||
|
! https://upload.wikimedia.org/wikipedia/commons/1/15/Xterm_256color_chart.svg
|
||||||
|
! RGB to HEX https://unix.stackexchange.com/a/269085
|
||||||
|
! https://misc.flogisoft.com/bash/tip_colors_and_formatting
|
||||||
|
! https://stackoverflow.com/questions/5947742/how-to-change-the-output-color-of-echo-in-linux
|
||||||
|
! https://unix.stackexchange.com/questions/124407/what-color-codes-can-i-use-in-my-bash-ps1-prompt
|
||||||
|
|
||||||
|
! name dark light
|
||||||
|
! black 0 8
|
||||||
|
! red 1 9
|
||||||
|
! green 2 10
|
||||||
|
! yellow 3 11
|
||||||
|
! blue 4 12
|
||||||
|
! purple 5 13
|
||||||
|
! cyan 6 14
|
||||||
|
! white 7 15
|
||||||
|
|
||||||
|
! Tpope colors
|
||||||
|
*color0: #000000
|
||||||
|
*color1: #aa0000
|
||||||
|
*color2: #00aa00
|
||||||
|
*color3: #aa5522
|
||||||
|
*color4: #0000ee
|
||||||
|
*color5: #aa00aa
|
||||||
|
*color6: #00aaaa
|
||||||
|
*color7: #aaaaaa
|
||||||
|
*color8: #555555
|
||||||
|
*color9: #ff4444
|
||||||
|
*color10: #44ff44
|
||||||
|
*color11: #ffff00
|
||||||
|
*color12: #5c5cff
|
||||||
|
*color13: #ff00ff
|
||||||
|
*color14: #00ffff
|
||||||
|
*color15: #ffffff
|
||||||
|
*colorBD: #ffffff
|
||||||
|
|
||||||
|
! *.cursorColor: #ffffff
|
||||||
|
|
||||||
|
! *color0: #000000
|
||||||
|
! *color1: #aa0000
|
||||||
|
! *color2: #00aa00
|
||||||
|
! *color3: #aa5522
|
||||||
|
! *color4: #0000ee
|
||||||
|
! *color5: #aa00aa
|
||||||
|
! *color6: #00aaaa
|
||||||
|
! *color7: #aaaaaa
|
||||||
|
! *color8: #555555
|
||||||
|
! *color9: #ff4444
|
||||||
|
! *color10: #44ff44
|
||||||
|
! *color11: #ffff00
|
||||||
|
! *color12: #5c5cff
|
||||||
|
! *color13: #ff00ff
|
||||||
|
! *color14: #00ffff
|
||||||
|
! *color15: #ffffff
|
||||||
|
! *colorBD: #ffffff
|
||||||
|
|
||||||
|
! ! Black / Grey
|
||||||
|
! *.color0: #000000
|
||||||
|
! ! *.color8: #808080
|
||||||
|
! *.color8: #767676
|
||||||
|
|
||||||
|
! ! Red / Bright Red
|
||||||
|
! *.color1: #800000
|
||||||
|
! *.color9: #FF0000
|
||||||
|
|
||||||
|
! ! Green + Bright Green
|
||||||
|
! ! *.color2: #008000
|
||||||
|
! *.color2: #00af00
|
||||||
|
! *.color10: #00ff00
|
||||||
|
|
||||||
|
! ! Yellow (Orange) + Bright Yellow (Yellow)
|
||||||
|
! *.color3: #808000
|
||||||
|
! *.color11: #ffff00
|
||||||
|
|
||||||
|
! ! Blue + Bright Blue
|
||||||
|
! *.color4: #000080
|
||||||
|
! *.color12: #0000ff
|
||||||
|
|
||||||
|
! ! Magenta (Purple) + Bright Magenta
|
||||||
|
! ! *.color5: #800080
|
||||||
|
! *.color5: #af00d7
|
||||||
|
! *.color13: #0000ff
|
||||||
|
|
||||||
|
! ! Cyan (Aqua) + Bright Cyan
|
||||||
|
! ! *.color6: #800080
|
||||||
|
! *.color6: #008b8b
|
||||||
|
! ! *.color14: #ff00ff
|
||||||
|
! *.color14: #00d7ff
|
||||||
|
|
||||||
|
! ! Light Grey (Selection) + White (Current Line)
|
||||||
|
! *.color7: #c0c0c0
|
||||||
|
! *.color15: #ffffff
|
||||||
|
|
||||||
!## [U]XTERM
|
!## [U]XTERM
|
||||||
*.selectToClipboard: true
|
*.selectToClipboard: true
|
||||||
*.VT100saveLines: 4096
|
*.VT100saveLines: 4096
|
||||||
@ -34,20 +129,16 @@
|
|||||||
*.VT100.background: black
|
*.VT100.background: black
|
||||||
*.foreground: white
|
*.foreground: white
|
||||||
*.VT100.foreground: white
|
*.VT100.foreground: white
|
||||||
*.termName: xterm-direct256
|
*.termName: xterm-256color
|
||||||
*.ttyModes: start ^- stop ^-
|
*.ttyModes: start ^- stop ^-
|
||||||
*.boldMode: false
|
*.boldMode: false
|
||||||
*.allowBoldFonts: false
|
*.allowBoldFonts: false
|
||||||
*.colorMode: true
|
|
||||||
*.dynamicColors: true
|
|
||||||
*.colorBDMode: false
|
|
||||||
*.colorULMode: false
|
|
||||||
*.underline: false
|
|
||||||
*.VT100.geometry: 80x24
|
*.VT100.geometry: 80x24
|
||||||
*.VT100.scaleHeight: 1.1
|
*.VT100.scaleHeight: 1.1
|
||||||
! For some reason, '*scrollBar' was not working on Fedora.
|
! For some reason, '*scrollBar' was not working on Fedora.
|
||||||
XTerm*.scrollBar: false
|
XTerm*.scrollBar: false
|
||||||
UXTerm*.scrollBar: false
|
UXTerm*.scrollBar: false
|
||||||
|
*.colorBDMode: true
|
||||||
*.visualBell: false
|
*.visualBell: false
|
||||||
*.eightBitInput: false
|
*.eightBitInput: false
|
||||||
*.modifyCursorKeys: 2
|
*.modifyCursorKeys: 2
|
||||||
|
|||||||
9
files/xfce/.config/xfce4/helpers.rc
Normal file
9
files/xfce/.config/xfce4/helpers.rc
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
## SPDX-FileCopyrightText: 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
|
##
|
||||||
|
## SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
# vim: ft=confini
|
||||||
|
|
||||||
|
FileManager=thunar
|
||||||
|
MailReaders=thunderbid
|
||||||
|
WebBrowser=x-www-browser
|
||||||
|
TerminalEmulator=x-terminal-emulator
|
||||||
@ -1,37 +0,0 @@
|
|||||||
{#
|
|
||||||
SPDX-FileCopyrightText: 2024 seven-beep <ebn@entreparentheses.xyz>
|
|
||||||
SPDX-FileCopyrightText: 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
|
||||||
|
|
||||||
SPDX-License-Identifier: CC-BY-SA-4.0
|
|
||||||
|
|
||||||
|
|
||||||
Example of a pillar state structure for https://github.com/ben-grande/dotfiles
|
|
||||||
|
|
||||||
For this file to be active:
|
|
||||||
|
|
||||||
1. Copy the file to the pillar_roots directory without the '.example' suffix;
|
|
||||||
2. Reference this state by a pillar highstate.
|
|
||||||
|
|
||||||
See the README for detailed instructions.
|
|
||||||
|
|
||||||
Each pillar component is optional. Disable a single component by setting them
|
|
||||||
to 'false'. To selectively enable few components, disable 'all' and enable
|
|
||||||
each desired component by setting them to 'true'.
|
|
||||||
|
|
||||||
Entries example: 'dom0' corresponds to 'copy-dom0.sls'.
|
|
||||||
#}
|
|
||||||
|
|
||||||
qusal:
|
|
||||||
dotfiles:
|
|
||||||
all: true
|
|
||||||
dom0: true
|
|
||||||
git: true
|
|
||||||
gtk: true
|
|
||||||
mutt: true
|
|
||||||
net: true
|
|
||||||
pgp: true
|
|
||||||
sh: true
|
|
||||||
ssh: true
|
|
||||||
tmux: true
|
|
||||||
vim: true
|
|
||||||
x11: true
|
|
||||||
@ -1,20 +0,0 @@
|
|||||||
{#
|
|
||||||
SPDX-FileCopyrightText: 2024 seven-beep <ebn@entreparentheses.xyz>
|
|
||||||
SPDX-FileCopyrightText: 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
|
||||||
|
|
||||||
SPDX-License-Identifier: CC-BY-SA-4.0
|
|
||||||
|
|
||||||
|
|
||||||
Example of a pillar top structure for https://github.com/ben-grande/dotfiles
|
|
||||||
|
|
||||||
For this file to be active:
|
|
||||||
|
|
||||||
1. Copy the file to the pillar_roots directory without the '.example' suffix;
|
|
||||||
2. Enable the pillar highstate.
|
|
||||||
|
|
||||||
See the README for detailed instructions.
|
|
||||||
#}
|
|
||||||
|
|
||||||
base:
|
|
||||||
'*':
|
|
||||||
- qusal.dotfiles
|
|
||||||
Loading…
x
Reference in New Issue
Block a user