Merge branch 'gitui' into 'main'

Gitui + ncspot

See merge request sagidayan/linux-config!2
This commit is contained in:
Sagi Dayan 2021-12-20 14:31:31 +00:00
commit 985049199d
9 changed files with 683 additions and 15 deletions

View file

@ -1,10 +1,9 @@
--- ---
stages: stages:
- dnf_systems - x86 Systems
- apt_systems
Run Workstation playbook on fedora: Run Workstation playbook on fedora:
stage: dnf_systems stage: x86 Systems
image: fedora:latest image: fedora:latest
script: script:
- dnf install -y ansible python3-pip - dnf install -y ansible python3-pip
@ -18,7 +17,7 @@ Run Workstation playbook on fedora:
junit: report.xml junit: report.xml
Run cli-tools playbook on centos: Run cli-tools playbook on centos:
stage: dnf_systems stage: x86 Systems
image: centos:8 image: centos:8
script: script:
- dnf install -y epel-release dnf-plugins-core - dnf install -y epel-release dnf-plugins-core
@ -35,7 +34,7 @@ Run cli-tools playbook on centos:
junit: report.xml junit: report.xml
Run Workstation playbook on ubuntu: Run Workstation playbook on ubuntu:
stage: apt_systems stage: x86 Systems
image: ubuntu:latest image: ubuntu:latest
script: script:
- export DEBIAN_FRONTEND=noninteractive - export DEBIAN_FRONTEND=noninteractive
@ -53,7 +52,7 @@ Run Workstation playbook on ubuntu:
junit: report.xml junit: report.xml
Run cli-tools playbook on debian: Run cli-tools playbook on debian:
stage: apt_systems stage: x86 Systems
image: debian:latest image: debian:latest
script: script:
- apt-get update - apt-get update

View file

@ -0,0 +1,553 @@
// ************** Managed by Ansible ****************
// src: https://github.com/extrawurst/gitui/blob/master/vim_style_key_config.ron
// bit for modifiers
// bits: 0 None
// bits: 1 SHIFT
// bits: 2 CONTROL
//
// Note:
// If the default key layout is lower case,
// and you want to use `Shift + q` to trigger the exit event,
// the setting should like this `exit: Some(( code: Char('Q'), modifiers: ( bits: 1,),)),`
// The Char should be upper case, and the shift modified bit should be set to 1.
//
// Note:
// find `KeysList` type in src/keys/key_list.rs for all possible keys.
// every key not overwritten via the config file will use the default specified there
(
tab_status: (
code: Char('1'),
modifiers: (
bits: 0,
),
),
tab_log: (
code: Char('2'),
modifiers: (
bits: 0,
),
),
tab_files: (
code: Char('3'),
modifiers: (
bits: 0,
),
),
tab_stashing: (
code: Char('4'),
modifiers: (
bits: 0,
),
),
tab_stashes: (
code: Char('5'),
modifiers: (
bits: 0,
),
),
tab_toggle: (
code: Tab,
modifiers: (
bits: 0,
),
),
tab_toggle_reverse: (
code: BackTab,
modifiers: (
bits: 1,
),
),
toggle_workarea: (
code: Char('w'),
modifiers: (
bits: 0,
),
),
exit: (
code: Char('c'),
modifiers: (
bits: 2,
),
),
quit: (
code: Char('q'),
modifiers: (
bits: 0,
),
),
exit_popup: (
code: Esc,
modifiers: (
bits: 0,
),
),
open_commit: (
code: Char('c'),
modifiers: (
bits: 0,
),
),
open_commit_editor: (
code: Char('e'),
modifiers: (
bits: 2,
),
),
tree_collapse_recursive: (
code: Left,
modifiers: (
bits: 1,
),
),
tree_expand_recursive: (
code: Right,
modifiers: (
bits: 1,
),
),
enter: (
code: Enter,
modifiers: (
bits: 0,
),
),
blame: (
code: Char('B'),
modifiers: (
bits: 1,
),
),
status_stage_all: (
code: Char('a'),
modifiers: (
bits: 0,
),
),
status_ignore_file: (
code: Char('i'),
modifiers: (
bits: 0,
),
),
stashing_toggle_untracked: (
code: Char('u'),
modifiers: (
bits: 0,
),
),
stash_apply: (
code: Char('a'),
modifiers: (
bits: 0,
),
),
stash_drop: (
code: Char('D'),
modifiers: (
bits: 1,
),
),
cmd_bar_toggle: (
code: Char('.'),
modifiers: (
bits: 0,
),
),
log_tag_commit: (
code: Char('t'),
modifiers: (
bits: 0,
),
),
commit_amend: (
code: Char('a'),
modifiers: (
bits: 2,
),
),
copy: (
code: Char('y'),
modifiers: (
bits: 0,
),
),
create_branch: (
code: Char('c'),
modifiers: (
bits: 0,
),
),
rename_branch: (
code: Char('r'),
modifiers: (
bits: 0,
),
),
select_branch: (
code: Char('b'),
modifiers: (
bits: 0,
),
),
delete_branch: (
code: Char('D'),
modifiers: (
bits: 1,
),
),
merge_branch: (
code: Char('m'),
modifiers: (
bits: 0,
),
),
tags: (
code: Char('T'),
modifiers: (
bits: 1,
),
),
delete_tag: (
code: Char('D'),
modifiers: (
bits: 1,
),
),
select_tag: (
code: Enter,
modifiers: (
bits: 0,
),
),
push: (
code: Char('p'),
modifiers: (
bits: 0,
),
),
open_file_tree: (
code: Char('F'),
modifiers: (
bits: 1,
),
),
force_push: (
code: Char('P'),
modifiers: (
bits: 1,
),
),
pull: (
code: Char('f'),
modifiers: (
bits: 0,
),
),
undo_commit: (
code: Char('U'),
modifiers: (
bits: 1,
),
),
focus_right: ( code: Char('l'), modifiers: ( bits: 0,),),
focus_left: ( code: Char('h'), modifiers: ( bits: 0,),),
focus_above: ( code: Char('k'), modifiers: ( bits: 0,),),
focus_below: ( code: Char('j'), modifiers: ( bits: 0,),),
open_help: ( code: F(1), modifiers: ( bits: 0,),),
move_left: ( code: Char('h'), modifiers: ( bits: 0,),),
move_right: ( code: Char('l'), modifiers: ( bits: 0,),),
move_up: ( code: Char('k'), modifiers: ( bits: 0,),),
move_down: ( code: Char('j'), modifiers: ( bits: 0,),),
popup_up: ( code: Char('p'), modifiers: ( bits: 2,),),
popup_down: ( code: Char('n'), modifiers: ( bits: 2,),),
page_up: ( code: Char('b'), modifiers: ( bits: 2,),),
page_down: ( code: Char('f'), modifiers: ( bits: 2,),),
home: ( code: Char('g'), modifiers: ( bits: 0,),),
end: ( code: Char('G'), modifiers: ( bits: 1,),),
shift_up: ( code: Char('K'), modifiers: ( bits: 1,),),
shift_down: ( code: Char('J'), modifiers: ( bits: 1,),),
edit_file: ( code: Char('I'), modifiers: ( bits: 1,),),
status_reset_item: ( code: Char('U'), modifiers: ( bits: 1,),),
diff_reset_lines: ( code: Char('u'), modifiers: ( bits: 0,),),
diff_stage_lines: ( code: Char('s'), modifiers: ( bits: 0,),),
stashing_save: ( code: Char('w'), modifiers: ( bits: 0,),),
stashing_toggle_index: ( code: Char('m'), modifiers: ( bits: 0,),),
stash_open: ( code: Char('l'), modifiers: ( bits: 0,),),
abort_merge: ( code: Char('M'), modifiers: ( bits: 1,),),
)

View file

@ -0,0 +1,19 @@
(
selected_tab: Cyan,
command_fg: Black,
selection_bg: Rgb(124, 156, 183),
cmdbar_extra_lines_bg: Blue,
disabled_fg: Gray,
diff_line_add: Green,
diff_line_delete: Red,
diff_file_added: LightGreen,
diff_file_removed: LightRed,
diff_file_moved: LightMagenta,
diff_file_modified: Yellow,
commit_hash: Magenta,
commit_time: LightCyan,
commit_author: Green,
danger_fg: Red,
push_gauge_bg: Blue,
push_gauge_fg: Reset,
)

View file

@ -75,7 +75,7 @@ function ide() {
tmux send-keys "l" C-m tmux send-keys "l" C-m
tmux split-window -h -p 80 tmux split-window -h -p 80
tmux split-window -h -p 30 tmux split-window -h -p 30
tmux send-keys "lazygit" C-m tmux send-keys "gitui" C-m
tmux select-pane -t 1 tmux select-pane -t 1
tmux split-window -v -p 20 tmux split-window -v -p 20
tmux select-pane -t 1 tmux select-pane -t 1

View file

@ -1,7 +1,7 @@
# If you come from bash you might have to change your $PATH. # If you come from bash you might have to change your $PATH.
# Path to your oh-my-zsh installation. # Path to your oh-my-zsh installation.
export ZSH="/home/sdayan/.oh-my-zsh" export ZSH="${HOME}/.oh-my-zsh"
# Set name of the theme to load --- if set to "random", it will # Set name of the theme to load --- if set to "random", it will
# load a random theme each time oh-my-zsh is loaded, in which case, # load a random theme each time oh-my-zsh is loaded, in which case,

View file

@ -10,4 +10,5 @@
- tmux_user - tmux_user
- vim_user - vim_user
- alacritty_user - alacritty_user
- ncspot_user
- flatpaks - flatpaks

View file

@ -41,12 +41,6 @@
dest: ~/.zshrc dest: ~/.zshrc
force: yes force: yes
- name: Fix oh-my-zsh sourcing
ansible.builtin.lineinfile:
path: "~/.zshrc"
regexp: "^export ZSH="
line: 'export ZSH="/home/{{running_user}}/.oh-my-zsh"'
- name: Add ranger devicons plugin repo - name: Add ranger devicons plugin repo
git: git:
repo: https://github.com/alexanderjeurissen/ranger_devicons.git repo: https://github.com/alexanderjeurissen/ranger_devicons.git
@ -101,6 +95,23 @@
dest: ~/.shellconfig/environment.sh dest: ~/.shellconfig/environment.sh
force: no force: no
- name: Verifying gitui config folder
file:
path: ~/.config/gitui
state: directory
- name: Copy gitui keybindings config file
copy:
src: dotfiles/gitui/key_config.ron
dest: ~/.config/gitui/key_config.ron
force: yes
- name: Copy gitui theme config file
copy:
src: dotfiles/gitui/theme.ron
dest: ~/.config/gitui/theme.ron
force: yes
- name: Install rust and common tooling - name: Install rust and common tooling
vars: vars:
rustup_user: "{{ running_user }}" rustup_user: "{{ running_user }}"
@ -108,3 +119,6 @@
ansible.builtin.include_role: ansible.builtin.include_role:
name: hurricanehrndz.rustup name: hurricanehrndz.rustup
- name: Gitui user
include_role:
name: gitui_user

View file

@ -0,0 +1,28 @@
- name: Install gitui dependencies (RHEL)
become: true
package:
name: &gitui_deps_rhel
- perl
state: present
when: ansible_facts['os_family'] == "RedHat"
- name: Installing gitui
vars:
rustup_user: "{{ running_user }}"
rustup_cargo_crates: [gitui]
ansible.builtin.include_role:
name: hurricanehrndz.rustup
- name: Setting up ncspot alias (spot)
ansible.builtin.lineinfile:
line: alias spot=ncspot
state: present
path: ~/.shellconfig/aliases.sh
insertafter: EOF
- name: Remove gitui dependencies (RHEL)
become: true
package:
name: *gitui_deps_rhel
state: absent
when: ansible_facts['os_family'] == "RedHat"

View file

@ -0,0 +1,54 @@
- name: Install ncspot dependencies (RHEL)
become: true
package:
name: &ncspot_deps_rhel
- pulseaudio-libs-devel
- libxcb-devel
- openssl-devel
- ncurses-devel
- dbus-devel
state: present
when: ansible_facts['os_family'] == "RedHat"
- name: Install ncspot dependencies (Debian)
become: true
package:
name: &ncspot_deps_debian
- libncursesw5-dev
- libdbus-1-dev
- libpulse-dev
- libssl-dev
- libxcb1-dev
- libxcb-render0-dev
- libxcb-shape0-dev
- libxcb-xfixes0-dev
state: present
when: ansible_facts['os_family'] == "Debian"
- name: Installing nscpot
vars:
rustup_user: "{{ running_user }}"
rustup_cargo_crates: [ncspot]
ansible.builtin.include_role:
name: hurricanehrndz.rustup
- name: Setting up ncspot alias (spot)
ansible.builtin.lineinfile:
line: alias spot=ncspot
state: present
path: ~/.shellconfig/aliases.sh
insertafter: EOF
- name: Remove ncspot dependencies (RHEL)
become: true
package:
name: *ncspot_deps_rhel
state: absent
when: ansible_facts['os_family'] == "RedHat"
- name: Remove ncspot dependencies (Debian)
become: true
package:
name: *ncspot_deps_debian
state: absent
when: ansible_facts['os_family'] == "Debian"